似乎无法理解为什么会这样做
moment("30\\Nov\\2016 22:14","DD\\MM\\YYYY HH:mm").toString()
(结果为"Wed Nov 30 2016 22:14:00 GMT+0000"
)
这不起作用
moment("31\\Oct\\2016 22:14","DD\\MM\\YYYY HH:mm").toString()
(结果为"Invalid date"
)。
有人知道为什么会这样吗?
编辑
更改了上面的日期
编辑2
尝试了此代码段
moment("30\\Jan\\2016 22:14","DD\\MMM\\YYYY HH:mm").toString()
result = "Wed Nov 30 2016 22:14:00 GMT+0000"
答案 0 :(得分:1)
这里有几个问题:
首先,在某些情况下,使用反斜杠的日期格式会导致问题(单个或双反斜杠都会导致不同的问题)。我不确定问题究竟是什么,因为第一个例子有效,但我怀疑它将它视为某种转义序列。
其次,“MM”是用于解析短月份名称的错误标记。它应该是“MMM”。在使用“MM”时,它对你的“Nov”字符串起作用似乎是巧合,但它肯定不适用于“Oct”或大多数其他字符串。
如果您可以更改数据源以使用其他分隔符提供日期(/
或-
非常标准),那么请执行此操作。如果没有,您可能必须在将它提供给momentJS之前对日期字符串进行字符串替换。
不起作用的字符串示例(生成错误日期或报告“无效日期”):
"31\\Oct\\2016 22:14","DD\\MMM\\YYYY HH:mm"
"31\Oct\2016 22:14","DD\MMM\YYYY HH:mm"
"31/Oct/2016 22:14","DD/MM/YYYY HH:mm"
正如你所看到的,它几乎发展到了一个可解析的字符串,它看起来像:
"31/Oct/2016 22:14","DD/MMM/YYYY HH:mm"