【发布时间】:2018-02-01 16:52:30
【问题描述】:
我有一个日期格式:
var date = "21 Sep 2017 14:00"
我想将此日期更改为不带时区的 en-US(即本地)。我猜应该是:
“2017 年 9 月 21 日”;
当我这样做时(我想我需要告诉时刻我的日期格式是什么):
moment.utc(date).local().format('DD MMM YYYY') 它输出“2017 年 9 月 21 日”
但如果我这样做:
moment.utc(date).local().format() 它仍然输出“2017 年 9 月 21 日”
为了测试,我一直在将我的区域设置从 en-GB 更改为 en-US,这似乎没有任何区别。
我在这里做错了什么?
如何将日期转换为本地设置(并在本地进行测试)
我在英国
编辑:
Re cmets - 为什么这不说 Set 而不是 Sep:
【问题讨论】:
-
ˋlocal()ˋ 函数只会更改日期或月份的名称。而且由于您接缝使用相同的语言(ˋen-GBˋ,与ˋen-USˋ),因此不会更改名称。尝试将语言更改为英语以外的其他语言
-
我刚刚将区域设置更改为越南,我在 chrome 中重新启动了隐身模式,再看一遍,它仍然显示 2017 年 9 月 21 日。嗯。我一定是错过了其他东西
-
您需要更改 MomentJS 的语言而不是您的计算机设置。使用这个方法:ˋmoment.local("fr-CA")ˋ
-
您应该使用string+format 进行解析,而不仅仅是字符串。