有人可以帮忙做一些编码吗.基本上我希望上周一出现在用户输入今天日期的字段中.
例如:如果输入今天的日期,(29-Jan-16)则编码将使下一个星期一的日期出现,而不是(25-Jan-16).
我在网上看到了一些代码:
function getPreviousMonday()
{
var date = new Date();
if(date.getDay() != 0)
return new Date().setDate(date.getDate()-7-6);
else
return new Date().setDate(date.getDate()-date.getDate()-6);
}
Run Code Online (Sandbox Code Playgroud)
但是,这并不是很有效.
小智 26
var prevMonday = new Date();
prevMonday.setDate(prevMonday.getDate() - (prevMonday.getDay() + 6) % 7);
Run Code Online (Sandbox Code Playgroud)
我有点晚了,但我喜欢这个解决方案.这是一个单一的班轮而不是那么复杂.为此制作一个功能对我来说似乎有些过分.
小智 6
我认为您的数学知识还差一点,我整理了您的语法。
function getPreviousMonday()
{
var date = new Date();
var day = date.getDay();
var prevMonday;
if(date.getDay() == 0){
prevMonday = new Date().setDate(date.getDate() - 7);
}
else{
prevMonday = new Date().setDate(date.getDate() - day);
}
return prevMonday;
}
Run Code Online (Sandbox Code Playgroud)
这样,您始终可以获得发生的最后一个星期一(如果今天是星期一,则为7天前)
根据 @Philippe Dub\xc3\xa9-Tremblay 的回答,我想提出一些可以让你瞄准前一天的东西:
\nlet target = 1 // Monday\nlet date = new Date()\ndate.setDate(date.getDate() - ( date.getDay() == target ? 7 : (date.getDay() + (7 - target)) % 7 ))\nRun Code Online (Sandbox Code Playgroud)\n如果今天也是星期一,则考虑到上星期一
\n| 归档时间: |
|
| 查看次数: |
9325 次 |
| 最近记录: |