Javascript 为什么本地时间与moment.js中的UTC没有区别?

Javascript 为什么本地时间与moment.js中的UTC没有区别?,javascript,momentjs,Javascript,Momentjs,我有以下使用moment.js的代码: var Now = moment(); var UTC = moment().utc(); if (moment().isBefore(UTC)){ $("#was").html("Time difference : " + Now.from(UTC)).fadeIn('fast'); } else { $("#was").html("Time difference : " + UTC.fromNow()).fadeIn('fast'

我有以下使用
moment.js
的代码:

var Now = moment();
var UTC = moment().utc();

 if (moment().isBefore(UTC)){
    $("#was").html("Time difference : " + Now.from(UTC)).fadeIn('fast');
 } else {
    $("#was").html("Time difference : " + UTC.fromNow()).fadeIn('fast');
 }

结果总是“几秒钟前”。你能告诉我我做错了什么吗?

虽然
现在和
UTC
的显示方式不同,但它们是相同的“时刻”。要理解这一点,您必须掌握
moment.js
如何在内部工作。以下是一些(我的重点):

默认情况下,矩解析并以本地时间显示

如果要以UTC分析或显示某个时刻,可以使用矩.UTC()而不是矩()

所以区别就在于解析和显示。在内部,矩对象具有相同的时间戳。演示这一点的一个小测试是在代码后附加(并运行)以下内容:

console.log(Now.valueOf());
console.log(UTC.valueOf());
console.log(Now.valueOf() - UTC.valueOf());  // will be "a few secods" at most ;)
更新:如果您的意图是创造一个瞬间,比如说5小时前,那么:

var hours_ago = 5;
var earlier = moment().subtract('hours', hours_ago); // 5 hours ago
var earlier_yet = moment().subtract({'days': 2, 'hours': 3}) // 2 days, 3 hours ago

你的最后一个短语属于一个单独的问题。如果我们使用区域(“+00:00”)和区域(+05:00”)之间的差异,那么同样的事情也会发生。。。是否有一种方法可以解决这一问题,以显示实际的差异?是否用
var ago_5h=moment()减去('hours',5)满足您的需求?我将尝试看看我能想出什么,但感谢您解释“时刻”是如何工作的,它实际上解决了我这里的大部分问题。