从UTC字符串创建时刻对象

时间:2015-06-06 23:09:34

标签: javascript date momentjs utc

我从我的webservice获取一个UTC日期字符串,如下所示: "2015-06-06T12:30:12Z"

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

  1. 如果日期< 1周,显示如下:3天前或23分钟前....
  2. 如果日期> 1周后,显示日期YYYY-DD-MM
  3. 现在我正在尝试构建一个时刻对象,但似乎又回到了一些奇怪的东西:

    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å°æ™‚å‰
    

    你知道如何实现这个目标吗?

    感谢。

1 个答案:

答案 0 :(得分:0)

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

非常简单地说,它使用最后一个语言环境加载(" zh-tw"),而不是默认为英语。

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

moment.locale('en');

这会将语言设置为英语。

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