计算上周日Javascript
我试图通过.setdate.getdate-7天的方法来计算上一个星期天的日期,但它似乎可以完美地计算上周的yesturday,但不能计算星期天。有什么想法吗计算上周日Javascript,javascript,date,Javascript,Date,我试图通过.setdate.getdate-7天的方法来计算上一个星期天的日期,但它似乎可以完美地计算上周的yesturday,但不能计算星期天。有什么想法吗 var today=新日期(); var昨天=新日期(); var lwdayed=新日期(); var lwsday=新日期(); //设定昨天的日期 昨天.setDate(今天.getDate()-1); console.log('昨天='+昨天); //星期天计算并设置 var Sunday=新日期(today.getTime()
var today=新日期();
var昨天=新日期();
var lwdayed=新日期();
var lwsday=新日期();
//设定昨天的日期
昨天.setDate(今天.getDate()-1);
console.log('昨天='+昨天);
//星期天计算并设置
var Sunday=新日期(today.getTime()-today.getDay()*24*3600*1000);
console.log('最近的星期日='+星期日);
//上周是昨天
lweather.setDate(昨日.getDate()-7);
console.log('上周昨天='+昨天);
//上周定在星期天
lwsday.setDate(Sunday.getDate()-7);
log('last week sunday='+LWSunday);
//返回2017年5月23日星期二14:08:24 GMT+0100(GMT夏季时间)
//应该是星期二>**2017年4月23日14:08:24 GMT+0100(GMT夏季时间)
我刚刚注意到你真正的问题:
周日可能是最后一个月了。
因此,Sunday.getDate()-7为正值,不会更改LWSdanday Month属性
因此,您还需要更改月份(在某些情况下):
或者你选择了整个约会:
var LWSunday = new Date(Sunday.getTime() - 7*24*3600*1000);
我刚刚注意到你真正的问题: 周日可能是最后一个月了。 因此,Sunday.getDate()-7为正值,不会更改LWSdanday Month属性 因此,您还需要更改月份(在某些情况下): 或者你选择了整个约会:
var LWSunday = new Date(Sunday.getTime() - 7*24*3600*1000);
SetDate()
查找时间值输入的月份。但是你试图通过外观来找到整个日期值。如果我明白你想做什么,你真正想要的是:
LWSunday.setTime(Sunday.getTime() - 7*24*60*60*1000);
SetDate()
查找时间值输入的月份。但是你试图通过外观来找到整个日期值。如果我明白你想做什么,你真正想要的是:
LWSunday.setTime(Sunday.getTime() - 7*24*60*60*1000);
我们使用daysBack
变量,这样无论今天是星期几,我们都可以得到上一个星期天。由于getDay()
返回0表示星期天,1表示星期一等,我们使用的公式如上所述。例如,如果今天是星期六,getDay()
给我们6,我们这里有-7+(7-6),然后是-7+1,我们得到-6,这意味着最近的星期天是6天前
daysBack | |-7
用于获取前一个星期日,如果今天也是星期日
我们使用daysBack
变量,这样无论今天是星期几,我们都可以得到上一个星期天。由于getDay()
返回0表示星期天,1表示星期一等,我们使用的公式如上所述。例如,如果今天是星期六,getDay()
给我们6,我们这里有-7+(7-6),然后是-7+1,我们得到-6,这意味着最近的星期天是6天前
daysBack | |-7
用于获取前一个星期日,如果今天也是星期日 您不必设置月份,因为setDate
功能会自动处理:
Date.setDate(day)
-day
表示一个月中某一天的整数
预期值为1-31,但允许使用其他值:
- 0将导致上个月的最后一天
- -1将导致上个月最后一天的前一天
- 32将在下个月的第一天完成
- 32将在下个月的第二天完成
-
返回一周中的某一天(其中周日为0,周一为1,…周六为6)getDay()
- 你必须把它转换成Monay是1。。。星期六是6,星期天是7
- 您可以通过
进行转换(从Damian那里借用)today.getDay()| | 7
- 否则,当今天是星期日时,代码将把这个星期日作为上周的星期日
-
您必须将每月的日期(
)减少为每周的日期(getDate()
)getDay()| 7
lwsday.setDate(today.getDate()-(today.getDay()| 7))代码>
类似地,如果要获取当前一周的星期日,则必须添加7天:Sunday.setDate(today.getDate()-(today.getDay()| 7)+7)代码>
var today=新日期();
var Sunday=新日期();
var lwsday=新日期();
//星期天计算并设置
Sunday.setDate(今天.getDate()-(今天.getDay()| 7)+7);
console.log('最近的星期日='+星期日);
//上周定在星期天
lwsday.setDate(today.getDate()-(today.getDay()| 7));
log('last week sunday='+LWSunday)代码>您不必设置月份,因为setDate
功能会自动处理:
Date.setDate(day)
-day
表示一个月中某一天的整数
预期值为1-31,但允许使用其他值:
- 0将导致上个月的最后一天
- -1将导致上个月最后一天的前一天
如果该月有31天:
- 32将在下个月的第一天完成
如果该月有30天:
- 32将在下个月的第二天完成
您需要的是:
-
getDay()
返回一周中的某一天(其中周日为0,周一为1,…周六为6)
- 你必须把它转换成Monay是1。。。星期六是6,星期天是7
- 您可以通过
today.getDay()| | 7
进行转换(从Damian那里借用)
- 否则,当今天是星期日时,代码将把这个星期日作为上周的星期日
-
你必须减少时间