从 UTC 字符串创建时刻对象
Create moment Object from UTC string
我从我的网络服务中获取 UTC 日期字符串,如下所示:
"2015-06-06T12:30:12Z"
我需要按照以下 2 条规则显示它:
- 如果日期 < 1 周,显示为:3 天前或 23 分钟前....
- 如果日期 > 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")
之类的参数 - 如果这是您希望看到的输出格式。
我从我的网络服务中获取 UTC 日期字符串,如下所示:
"2015-06-06T12:30:12Z"
我需要按照以下 2 条规则显示它:
- 如果日期 < 1 周,显示为:3 天前或 23 分钟前....
- 如果日期 > 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")
之类的参数 - 如果这是您希望看到的输出格式。