And*_*erd 15 javascript datetime date
我需要在星期日从日历视图中显示当前周.
在Javascript中确定"最后一个星期天"最安全的方法是什么?
我使用以下代码计算它:
Date.prototype.addDays = function(n) {
return new Date(this.getTime() + (24*60*60*1000)*n);
}
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var lastSunday = today.addDays(0-today.getDay());
Run Code Online (Sandbox Code Playgroud)
该代码假设每天包含二十四小时.这是正确的,除非是夏令时交叉日,在这种情况下,这一天可能是二十三或二十五小时.
本周,在澳大利亚悉尼,我们将时钟向前推进了一个小时.结果,我的代码计算lastSunday在星期六23:00.
那么上周日确定最安全,最有效的方法是什么?
Rob*_*obG 19
要安全地添加一天,请使用:
d.setDate(d.getDate() + 1);
Run Code Online (Sandbox Code Playgroud)
这是夏令时安全.要将日期对象设置为上一个星期日:
function setToLastSunday(d) {
return d.setDate(d.getDate() - d.getDay());
}
Run Code Online (Sandbox Code Playgroud)
或者为上一个星期日返回一个新的Date对象:
function getLastSunday(d) {
var t = new Date(d);
t.setDate(t.getDate() - t.getDay());
return t;
}
Run Code Online (Sandbox Code Playgroud)
最初的答案有一个不正确的版本添加时间,这确实增加了一天但不是OP想要的方式.
试试这个jsfiddle
它仅使用内置的日期方法
var now = new Date();
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var lastSunday = new Date(today.setDate(today.getDate()-today.getDay()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10515 次 |
| 最近记录: |