我有一个使用javascript的UTC日期,我想减去一些时间。
我在网上搜索过,显然应该将减号保留为以下日期:
const diff = "-5"
const utcDate = "2017-02-22 17:28:13"
const date = new Date(utcDate + diff[0] + ' ' + diff[1])
//desired output: 2017-02-22 12:28:13
但我似乎无法使其正常工作。
答案 0 :(得分:0)
someDate.setHours(someDate.getHours()+1);
答案 1 :(得分:0)
我用.getTime()
完成所有日期计算。
所以一个小时是3600000毫秒。
const MILLISECONDS_HOUR = 3600000;
const diff = -5;
const utcDate_str = "2017-02-22 17:28:13";
const utcDate = new Date( utcDate_str );
const minus_5_hours = new Date( utcDate.getTime() + ( MILLISECONDS_HOUR * diff ));
console.log( utcDate.toJSON());
console.log( minus_5_hours.toJSON());
最大的优势是javascript将处理take年,月份边界等问题。
但是,由于您正在调用变量diff
,因此您是否要计算lcoal时间与UTC时间?
在这种情况下,请重新阅读javascript Date方法。有很多方法可以处理UTC和本地时间,例如:date.getUTCDate()
和date.getDate()
。
因此您可能不必自己计算所有这些。
此外,如果您按照ISO "2017-02-22T17:28:13.000Z"
格式化日期,则会自动将其解析为UTC。