Javascript时刻 - 时区,不同时区的日期之间的差异

时间:2016-04-22 14:51:38

标签: javascript date momentjs difference gmt

我有:

var now = moment.format(); //get current time
var days = 5; //days I need to subtract from time(then)
var then = '05/02/2016 12:00 am';

现在我需要在nowthen减法( - )5天之间获得差异,但在+0000,因此GMT +0。 因此now必须位于用户本地时间,而then必须位于+0000 GMT。

如何在天,小时,分钟,秒之间区分这些日期?

我试试:

var now  = moment().format();                         
var then = moment('05/02/2016 12:00 am').utcOffset(+0000).format(); 
    then = moment(then).subtract(5,'days');
    d = moment.utc(moment(now).diff(moment(then))).format("DD HH:mm:ss");

但我得到结果 - 这是错误的......

"27 18:48:55"

1 个答案:

答案 0 :(得分:1)

问题在于您尝试使用时差作为时间。您需要将moment.duration()diff的返回值一起使用。您还应该致电then.diff(now)以获得积极的变化。我还删除了.format()moment()的一些不必要的电话。

var now  = moment();
var then = moment('05/02/2016 12:00 am').utcOffset(+0000).subtract(5, 'days');
var duration = moment.duration(then.diff(now));
console.log(duration.days(), duration.hours(), duration.minutes(), duration.seconds());

日志

4 3 15 46