【发布时间】:2016-07-23 19:40:42
【问题描述】:
我从服务器收到一个 UTC 日期时间,并试图以可读的形式显示它:
moment.utc(utc_date).local().fromNow();
在我的本地开发环境(Homestead、Laravel)中,这可以正常工作,并且会完全按照要求显示,例如:
a day ago
或
4 hours ago
但在我的生产服务器上,它输出的似乎是速记:
1d
或
4h
我似乎无法弄清楚这一点,而且我的搜索没有任何结果。我有什么明显的遗漏吗?或者关于如何解决它的任何建议?
【问题讨论】:
-
我假设您的生产服务器上没有locales,或者您正在使用尚不存在的语言环境进行测试,因此它正在回退到 d/h。这可能是一个糟糕的假设,因为代码中有一个后备
defaultRelativeTime,但TBH 你真的只需要在生产环境中的调试器中逐步完成你的代码。找出失败的地方应该不难。 (顺便说一句 - 我开始讨厌 es6 模块......这么多文件只是阻止它 - 这是矫枉过正 moment) -
utc_date变量中实际存在什么类型的值?它是Date对象吗?一个号码?一个字符串?请举个例子。此外,一般来说,fromNow不会在意您切换到 utc 模式还是本地模式,因为无论如何“now”在内部都是基于 utc 的。 -
@MattJohnson 恕我直言,这是一个我们不应该关注的细节,正如您已经说过的那样。
标签: javascript momentjs