Ken*_*mer 4 javascript validation jquery date
我正在开发 jQuery 信用卡到期日期验证脚本。信用卡在到期月份的最后一天后到期。例如,如果该卡于 8/2013 到期,则其有效期至 8/31/2013。
过去,在服务器端,我通过将当前月份加 1,然后减去 1 天来确定该月的最后一天。
今天我注意到,在创建新日期时,如果将 0 应用于 JavaScript Date() 对象的第三个参数,则生成的日期将是月底。但我无法找到任何在线文档来证实这一观察结果。
这是一些示例代码。
var month = 10;
var year = 2013;
var expires = new Date(year, month, 0);
alert(expires);
Run Code Online (Sandbox Code Playgroud)
这是我创建的jsFiddle 示例。
这有点令人困惑,因为我认为 JavaScript 中的月份是从零开始的。我已经在 Chrome、Firefox、IE 和 Safari 中对此进行了测试,并且行为看起来是一致的。返回的日期始终显示该月的最后一天。这看起来是一个幸运的发现,但我真的很想了解这里发生了什么。
我可以安全地使用这种方法来指定月末日期吗?如果可以,是否有一些在线文档可以指出来证实这一点?谢谢。
月份是从零开始的。这会在上个月创建一个月末日期。10 月是 11 月,因此创建 11 月第 0 天的日期将为您提供 10 月底(9 月)。
也就是说,11 月的第 0 天表示“11 月 1 日的前一天”,即 10 月的最后一天。11 月的第-1 天是 10 月 30 日。