Java 脚本 return 时间设置为“11:59:59 PM”的日期无效
Java Script return Invalid Date for Date with time set for "11:59:59 PM"
这让我疯狂了一个小时。
这是我的 Chrome 控制台的快照。
您可以看到默认的 js Date() 函数如何与提供给它的不同日期时间字符串表现得如此不一致。
有人知道吗?我该如何处理?
谢谢
你的格式有误。没有第 30 个月。
试试这个,
新日期(“2015 年 9 月 30 日 11:59:59 下午”)
一些浏览器使用 "dd/mm/yyyy" 格式,其他浏览器使用 "mm/dd/yyyy" 等等,无论哪种方式,为了不得到无效日期,您需要知道日期 class/function/method 将采用哪种格式使用以便您可以按该顺序传递日期字符串。
显然您测试的浏览器使用 "mm/dd/yyyy",因此您的第一个日期无效,因为不存在数字为“30”的月份,如“30/09/2015”。
当然,如果浏览器可以猜到,那会很聪明,在这种情况下,这很容易,但是这个“10/12/2015”,它不会,因为 "mm/dd/yyyy" 和 "dd/mm/yyyy" 将有一个相应的实际日期,“12 月 10 日”和“10 月 12 日”,我们不能让浏览器决定我们指的是哪一个,因为两者都会被视为有效。
检查此问题以深入了解问题以及解决问题的几种方法
- Why does Date.parse give incorrect results?
这让我疯狂了一个小时。
这是我的 Chrome 控制台的快照。
您可以看到默认的 js Date() 函数如何与提供给它的不同日期时间字符串表现得如此不一致。
有人知道吗?我该如何处理?
谢谢
你的格式有误。没有第 30 个月。 试试这个,
新日期(“2015 年 9 月 30 日 11:59:59 下午”)
一些浏览器使用 "dd/mm/yyyy" 格式,其他浏览器使用 "mm/dd/yyyy" 等等,无论哪种方式,为了不得到无效日期,您需要知道日期 class/function/method 将采用哪种格式使用以便您可以按该顺序传递日期字符串。
显然您测试的浏览器使用 "mm/dd/yyyy",因此您的第一个日期无效,因为不存在数字为“30”的月份,如“30/09/2015”。
当然,如果浏览器可以猜到,那会很聪明,在这种情况下,这很容易,但是这个“10/12/2015”,它不会,因为 "mm/dd/yyyy" 和 "dd/mm/yyyy" 将有一个相应的实际日期,“12 月 10 日”和“10 月 12 日”,我们不能让浏览器决定我们指的是哪一个,因为两者都会被视为有效。
检查此问题以深入了解问题以及解决问题的几种方法 - Why does Date.parse give incorrect results?