如何将1个UTC日添加到javascript日期?
问题描述:
使用javascript,如何取得一个非UTC日期,添加1个UTC日期,零时间时间(s),然后将其转换为ISO字符串?如何将1个UTC日添加到javascript日期?
new Date().toISOString()
2017-10-10T16:00:49.915Z
期望UTC Datestring
2017-10-11T00:00: 00.000Z
答
下面我以毫秒为单位获得日期,以毫秒为单位添加一整天。 然后我用毫秒分割一天,截断,然后再以毫秒为单位重复一次。
var d = new Date('2017-10-10T16:00:49.915Z');
function nextDayUTC(d) {
var aDay = 1440 * 60 * 1000;
var d2 = new Date(Math.trunc((d.getTime() + aDay)/aDay)*aDay);
return d2;
}
function nextDayLocal(d) {
//basically set to start of the day
//add 36 hrs, this pretty much ensures next day
//add then reset the hours back to 0
var hr36 = 36 * 60 * 60 * 1000;
var d2 = new Date(d);
d2.setHours(0,0,0,0);
d2.setTime(d2.getTime() + hr36);
d2.setHours(0,0,0,0);
return d2;
}
console.log(d)
console.log("Next Day UTC");
console.log(nextDayUTC(d).toISOString());
console.log("Next Day Local");
console.log(nextDayLocal(d).toString());
所以...你已经添加7h59m10s085?你的意思是第二天结束? – spectras
这可以帮助你的问题的第二部分'setUTCHours(0,0,0,0)'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours –