gpt4 book ai didi

javascript - 如何在 FireFox 中检查 Javascript 中的无效日期

转载 作者:行者123 更新时间:2023-12-03 07:23:54 25 4
gpt4 key购买 nike

我想测试无效日期,我编写的函数在 chrome 中工作正常,但在 Firefox 中不行。以下是一些在 FF 中不起作用的示例:

  1. 新日期('01/99/2010') = 返回有效日期
  2. new Date('99/01/2010') = 返回有效日期
  3. var 日='01',月='99',年='2010';new Date(年,月,日) = 返回有效日期
  4. var 日='99',月='01',年='2010';new Date(年,月,日) = 返回有效日期

上述方法在 Chrome 中返回“无效日期”,但在 Firefox 中则不会。有谁知道在 Firefox 中验证日期的正确方法。

PS:输入字符串可以是 - mm/dd/yyyy 或 dd/mm/yyyy 或 yyyy/mm/dd

最佳答案

看起来 Firefox 比 Chrome 更进一步地遵循了这一规则:

Note: Where Date is called as a constructor with more than one argument, if values are greater than their logical range (e.g. 13 is provided as the month value or 70 for the minute value), the adjacent value will be adjusted. E.g. new Date(2013, 13, 1) is equivalent to new Date(2014, 1, 1), both create a date for 2014-02-01 (note that the month is 0-based). Similarly for other values: new Date(2013, 2, 1, 0, 70) is equivalent to new Date(2013, 2, 1, 1, 10) which both create a date for 2013-03-01T01:10:00.

来源 - MDN Date documentation .

这里的重点是有多个参数。这就是 Chrome 做 Firefox 所做的事情的原因:

new Date(2010, 99, 1); - 有效的日期对象。

但是因为:

new Date('01/99/2010'); 从技术上讲只是一个参数,它在 Chrome 中不符合上述规则,但 Firefox 允许它通过。

考虑到上述情况以及浏览器之间的不一致,看起来您可能会被迫分别编写日期、月份和年份的验证器,而不是尝试通过 Date 对象来执行此操作,如果您希望它在 Firefox 中运行。

关于javascript - 如何在 FireFox 中检查 Javascript 中的无效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36085182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com