我正在开发一个 jQuery 信用卡到期日期验证脚本。信用卡在到期月份的最后一天之后到期。例如,如果卡在 2013 年 8 月到期,那么它可以在 2013 年 8 月 31 日到期。
过去,在服务器端,我通过将当前月份加 1,然后减去 1 天来确定该月的最后一天。
今天我注意到在创建新日期时,如果将 0 应用于 JavaScript Date() 对象的第三个参数,则生成的日期将是月末日期。但我一直无法找到任何在线文档来证实这一观察。
这是一些示例代码。
var month = 10;
var year = 2013;
var expires = new Date(year, month, 0);
alert(expires);
这是我创建的一个 jsFiddle 示例。
这有点令人困惑,因为我认为 JavaScript 月份是从零开始的。我已经在 Chrome、Firefox、IE 和 Safari 中对此进行了测试,并且行为看起来是一致的。返回的日期始终显示该月的最后一天。这看起来像是一个幸运的发现,但我真的很想了解这里发生了什么。
我是否可以安全地使用这种方法来分配月末日期,如果可以,是否有一些在线文档可以指出来确认这一点?谢谢。