繁体   English   中英

NodeJS 增加了两个小时?

[英]NodeJS add two hours to date?

我有这样的日期字符串:

Tue Jul 29 2014 23:44:06 GMT+0000 (UTC)

我怎样才能增加两个小时呢?

所以我得到:

Tue Jul 29 2014 01:44:06 GMT+0000 (UTC)

这是一个解决方案:

var date = new Date('Tue Jul 29 2014 23:44:06 GMT+0000 (UTC)').getTime();
date += (2 * 60 * 60 * 1000);
console.log(new Date(date).toUTCString());
// displays: Wed, 30 Jul 2014 01:44:06 GMT

显然,一旦你有了(新的)日期对象,你可以根据自己的喜好格式化输出,如果本机 Date 函数没有给你你需要的东西。

使用MomentJS

var moment = require('moment');

var date1 = moment("Tue Jul 29 2014 23:44:06 GMT+0000 (UTC)");

//sets an internal flag on the moment object.
date1.utc();

console.log(date1.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ (UTC)"));

//adds 2 hours
date1.add(2, 'h');

console.log(date1.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ (UTC)")); 

打印出以下内容:

Tue Jul 29 2014 23:44:06 GMT+0000 (UTC)

Wed Jul 30 2014 01:44:06 GMT+0000 (UTC)

这很好用:

const epoch = new Date('01-01-2000')
const notBeforeDate = new Date(epoch).setSeconds(notBefore)
const notAfterDate = new Date(epoch).setSeconds(notAfter)

注意: setSeconds()调用实际上秒数添加到当前 Date 值中,它不会将 Date 重置为某个绝对秒数。 这个细节在文档中没有得到很好的解决,当第一次尝试在 JavaScript 中使用 Dates 时会引起很多心痛。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM