我有:
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';
现在我需要在now
和then
减法( - )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"
答案 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