给定一个日期对象,如何获得前一周的第一天
这个Datejs库看起来可以相对容易地做到这一点.
码:
function getPreviousSunday() { var today=new Date(); return new Date().setDate(today.getDate()-today.getDay()-7); } function getPreviousMonday() { var today=new Date(); if(today.getDay() != 0) return new Date().setDate(today.getDate()-7-6); else return new Date().setDate(today.getDate()-today.getDay()-6); }
推理:
取决于前一周的第一天你的意思.为了讨论,我会假设你的意思是前一个星期天.
要查找要减去的天数:
获取当周的当天.
如果当周的当天是星期日,则减去7天
如果当天是星期一,则减去8天
...
如果当天是星期六13天
确定减去天数后的实际代码很简单:
var previous_first_day_of_week=new Date().setDate(today.getDate()-X);
其中X是上面讨论的值.这个值是today.getDay()+ 7
如果在一周的第一天你意味着别的东西,你应该能够从上面的步骤中推断出答案.
注意:将负值传递给setDate函数是有效的,它将正常工作.
对于周一的代码.你有这种特殊情况,因为getDay()在星期一之前订购.因此,在这种情况下,我们基本上用getDay()的星期六值+ 1来替换getDay(),以便将星期日重新订购到本周末.
我们使用6的值作为星期一的减法因为getDay()每天返回1比我们想要的高.