我正试图从当前日期减去1小时,我使用的代码是:
var date = new Date();
// date is **Fri Apr 03 2015 16:47:33 GMT+0100 (GMT Standard Time)**
var uploadDateFilter = new Date(new Date(date).setHours(date.getHours()-1)).toISOString();
//now date is **Fri Apr 03 2015 14:47:33 GMT+0100 (GMT Standard Time)**
只有一个小时,而不是两个小时。我在这里错过了什么?
您的代码在查看相同格式的元素时可以工作。
<div class="original"></div>
<div class="updated"></div>
使用jQuery发布信息。。。使用您的代码,按原样。
$(".original").text(date.toISOString());
$(".updated").text(uploadDateFilter);
结果在。。。
2015-04-03T16:00:23.441Z
2015-04-03T15:00:23.441Z
http://jsfiddle.net/rfornal/5nma5uhr/
您不需要.toISOString(),但对我来说它是有效的:
var date = new Date();
var uploadDateFilter = new Date(new Date(date).setHours(date.getHours()-1));
console.log(date);
console.log(uploadDateFilter);
控制台输出:
Fri, 03 Apr 2015 15:59:48 GMT
Fri, 03 Apr 2015 14:59:48 GMT
http://repl.it/gxL
原因似乎是夏令时检查我的小提琴。
对我来说,在英国,时钟是在2015年3月29日前拨的。在此日期前后检查new Date().toISOString()
的效果,在夏令时期间,结果会减少一小时。