从 UTC 字符串创建时刻对象

Create moment Object from UTC string

我从我的网络服务中获取 UTC 日期字符串,如下所示: "2015-06-06T12:30:12Z"

我需要按照以下 2 条规则显示它:

  1. 如果日期 < 1 周,显示为:3 天前或 23 分钟前....
  2. 如果日期 > 1 周,则显示日期 YYYY-DD-MM

现在我正在尝试构建一个 moment 对象,但似乎返回了一些奇怪的东西:

var sDate = "2015-06-06T12:30:12Z";
var momentDate = moment(sDate);
var fromNow = momentDate.fromNow();
console.log("momentDate : " + momentDate);    // 1433593812000
console.log("fromNow : " + fromNow);    // 11å°æ™‚å‰

你知道如何实现吗?

谢谢。

您刚刚遇到一个错误,已记录为 #2367

说得很简单,它使用最后加载的语言环境 ("zh-tw"),而不是默认为英语。

在加载时刻之后但在任何地方使用它之前,只需调用添加以下行。

moment.locale('en');

这会将语言设置回英语。

这解释了 fromNow 字符串的输出。另一个输出是因为您将 moment 对象直接与另一个字符串连接,该字符串隐式调用 .valueOf(),returns 以毫秒为单位的基于 UTC 的时间戳。您应该改为使用 .format(),也许带有诸如 .format("YYYY-MM-DD") 之类的参数 - 如果这是您希望看到的输出格式。