我在使用 momentjs 库时遇到问题
线
moment("Mon Oct 14 01:00:00 GMT 2013") parses correctly
Run Code Online (Sandbox Code Playgroud)
但这条线
moment("Mon Oct 14 01:00:00 BST 2013") throws an invalid date
Run Code Online (Sandbox Code Playgroud)
我已经尝试构建一个格式字符串,但我认为我需要的 zz 格式已被弃用,有没有办法让它完全跳过 BST/GMT 位,因为我只对日期感兴趣
提前致谢。
时区缩写不是唯一的,因此无法解析。您可以通过将任何非格式字符作为占位符来忽略它:
moment("Mon Oct 14 01:00:00 BST 2013","ddd MMM DD HH:mm:ss ? YYYY")
Run Code Online (Sandbox Code Playgroud)
但您应该意识到,如果忽略它,您将假设运行代码的计算机的本地时区。将您的计算机设置为另一个时区并调用.format()它,您就会明白我的意思。
也许您不关心时区,只想将其重新格式化为其他内容。这很好,但是如果您提供的日期由于计算机本地时区的夏令时转换而无效,该怎么办?您的浏览器将向后或向前跳跃,具体取决于您运行的浏览器。为了避免这种情况,您应该使用 UTC 而不是当地时间。即使您的输入值完全来自其他时区,使用 UTC 工作也将确保它不会被破坏。
moment.utc("Mon Oct 14 01:00:00 BST 2013","ddd MMM DD HH:mm:ss ? YYYY")
Run Code Online (Sandbox Code Playgroud)