Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将0指定给JavaScript Date()对象的第三个参数是否始终会创建月末日期?_Javascript_Jquery_Validation_Date - Fatal编程技术网

将0指定给JavaScript Date()对象的第三个参数是否始终会创建月末日期?

将0指定给JavaScript Date()对象的第三个参数是否始终会创建月末日期?,javascript,jquery,validation,date,Javascript,Jquery,Validation,Date,我正在编写jQuery信用卡到期日期验证脚本。信用卡在到期月份的最后一天到期。例如,如果该卡在2013年8月到期,则在2013年8月31日之前一直有效 过去,在服务器端,我通过将当前月份加1,然后减去1天来确定一个月的最后一天 今天我注意到,在创建新日期时,如果将0应用于JavaScript date()对象的第三个参数,则生成的日期将是月末。但我无法找到任何在线文档来证实这一观察结果 下面是一些示例代码 var month = 10; var year = 2013; var expires

我正在编写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);
而且是我创造的

这有点令人困惑,因为我认为在JavaScript中,这几个月是以零为基础的。我已经在Chrome、Firefox、IE和Safari中进行了测试,其行为似乎是一致的。返回的日期始终显示当月的最后一天。这看起来是个幸运的发现,但我真的很想了解这里发生了什么

我是否可以安全地使用这种方法来指定月底日期,如果可以,是否有一些在线文档可供我参考?谢谢。

月份是以零为基础的。这将在上个月创建月末日期。第10个月是11月,因此在11月创建日期为0的日期将显示10月底(第9个月)


也就是说,11月的第0天意味着“11月1日之前的一天”,即10月的最后一天。11月的第一天是10月30日。

谢谢你的解释。本质上,通过应用0,脚本将减去一天。这是一个方便的快捷方式。@KenPalmer好的-JavaScript日期对象在许多方面受到限制(特别是i18n),但基本行为非常方便。从头开始制作日历(西方日历)真的很容易,因为它为你做了所有的“日期数学”。