JS:今天转换's具有固定时间的ISOString()的日期

JS: Convert Today's Date to ISOString() with Fixed Time

本文关键字:定时间 ISOString 日期 转换 今天 JS      更新时间:2023-09-26

我正试图将今天的日期转换为ISO标准字符串,但固定时间为T00:00:00.000Z

我可以返回今天的日期和时间的ISO字符串:

var isoDate = new Date().toISOString();
// returns "2015-10-27T22:36:19.704Z"

但我想知道是否有可能有一个固定的时间,所以它应该返回:

"2015-10-27T00:00:00.000Z"

这可能吗?

感谢您的帮助。提前感谢!

要在午夜获取当前UTC日期:

var d = new Date();
d.setUTCHours(0);
d.setUTCMinutes(0);
d.setUTCSeconds(0);
d.setUTCMilliseconds(0);
var output = d.toISOString();

要获取当前本地日期,时间部分设置为UTC午夜:

var d = new Date();
var ts = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate());
var output = new Date(ts).toISOString();

至于使用哪一个,请仔细考虑您的要求,当前的UTC日期和当地日期可能确实是两个不同的日期。

例如,当UTC时间是10月27日午夜(00:00)时,纽约时间则是10月26日晚上8:00。

此外,还可以考虑使用moment.js,使用startOf('day').utc()函数可以更容易地进行这两种操作。