用js计算本周日期

JavaScript040

用js计算本周日期,第1张

<html>

<head>

<script type="text/javascript">

function showdate()

{

var now=new Date()

var start=new Date()

var end=new Date()

var n=now.getDay()

start.setDate(now.getDate()-n+1)

end.setDate(now.getDate()-n+7)

start = start.getFullYear() + "-" + (start.getMonth()+1) + "-" + start.getDate()

end = end.getFullYear() + "-" + (end.getMonth()+1) + "-" + end.getDate()

alert("本周开始于:"+start+",结束于"+end)

}

</script>

</head>

<body>

<input type="button" onclick="showdate()" value="本周按钮" name="本周按钮">

</body>

</html>

//

定义变量d为当年的1月1日0点

var

d

=

new

Date()

d.setFullYear(d.getFullYear(),0,1)

//

定义day为当年1月1日的星期数(0为星期天,1为星期1,6为星期6)

var

day

=

d.getDay()

//

定义fistweekleft为第一周剩余的天数,此处认为星期一是一周的第一天,如果将星期天定义为一周的第一天,请写成fistweekleft

=

(6-day)%6

var

fistweekleft

=

(7-day)%7

//

将d赋值为第二周的第一天,1+fistweekleft号为第一周最后天,1+fistweekleft+1为第二周第一天

d.setFullYear(d.getFullYear(),0,1+fistweekleft+1)

//

定义变量d1为当天

var

d1

=

new

Date()

//

当前时间与当年第二周第一天的毫秒数之差除以一周的毫秒数并取整即为当前日期距本的第二周已过的周数

//

结果加上2即为当天为本年的第几周(如果在一周的第一天的0点运行此程序,结果会比实际值大1,此种情况请自行处理)

alert(2+parseInt((d1.getTime()-d.getTime())/1000/60/60/24/7))

前言:需求里面有,做了就记录一下

第一种:获取当前月 当前周 的第一天 时分秒都为0,最后一天时分秒为23:59:59

ps:如果想获得指定日期的当前周,new Date('2020-1-2') 传参就可以了

//获取当前周

getTime(){

var date = new Date()

// 本周一的日期

date.setDate(date.getDate() - date.getDay() + 1)

var begin = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 00:00:00"

// 本周日的日期

date.setDate(date.getDate() + 6)

var end = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 23:59:59"

let timeInfo={

begin:begin,

end:end

}

return timeInfo

}

//获取当前月

getMtime(){

var data=new Date()

data.setDate(1)

data.setHours(0)

data.setSeconds(0)

data.setMinutes(0)

var start = data.getTime()

var currentMonth = data.getMonth()

var nextMonth = ++currentMonth

var nextMonthFirstDay = new Date(

data.getFullYear(),

nextMonth,

1

)

var end = nextMonthFirstDay-1

let timeInfo={

begin: this.timestampToTime(start),//这里调用时间戳转年月日时分秒方法

end: this.timestampToTime(end)

}

return timeInfo

}

//时间戳转年月日时分秒方法

timestampToTime (cjsj) {

var date = new Date(cjsj) //时间戳为10位需*1000,时间戳为13位的话不需乘1000

var Y = date.getFullYear() + '-'

var M = (date.getMonth()+1 <10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'

var D = (date.getDate() <10 ? '0'+date.getDate() : date.getDate()) + ' '

var h = (date.getHours() <10 ? '0'+date.getHours() : date.getHours()) + ':'

var m = (date.getMinutes() <10 ? '0'+date.getMinutes() : date.getMinutes())+ ':'

var s = (date.getSeconds() <10 ? '0'+date.getSeconds() : date.getSeconds())

return Y+M+D+h+m+s

}