Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Javascript new Date()接受月底之后的日期_Javascript_Date - Fatal编程技术网

Javascript new Date()接受月底之后的日期

Javascript new Date()接受月底之后的日期,javascript,date,Javascript,Date,我正在使用JavaScipt的新日期(datestring)解析IE11上的用户输入 具体的代码行是 var date = new Date(enteredText); 它接受日期字段的任何参数-例如,5/50/1997解析为1997年6月19日,因为6月19日将是5月的第50天 有没有办法强迫它不这样做,只接受真实的日期?您可以拆分通过“/”传递的参数,或者根据您的分隔符是什么,然后手动检查日期、月份和年份是否有效,然后再将其传递给日期函数您必须自己解析字符串以验证日期是否有效。要做到这一点

我正在使用JavaScipt的
新日期(datestring)
解析IE11上的用户输入

具体的代码行是

var date = new Date(enteredText);
它接受日期字段的任何参数-例如,
5/50/1997
解析为
1997年6月19日
,因为6月19日将是5月的第50天


有没有办法强迫它不这样做,只接受真实的日期?

您可以拆分通过“/”传递的参数,或者根据您的分隔符是什么,然后手动检查日期、月份和年份是否有效,然后再将其传递给日期函数

您必须自己解析字符串以验证日期是否有效。要做到这一点,您需要用
分隔符(“/”在本例中)拆分字符串,并检查每天/月/年是否有效


在哪里进行验证完全取决于您。您可以使用
Date.prototype.constructor=function(){/*此处的代码*/}
覆盖
Date
构造函数,也可以创建一个自定义函数,在实例化新的日期
函数validateDate(str){/*此处的代码*/}
之前验证字符串。后者可能是最好的选择。

您可以在创建日期对象之前检查值。但是我在chrome上试过了,我无法创建一个日期大于30/31的日期。它返回“无效日期”,您需要自己解析该日期。如果将无效的日期字符串传递给日期构造函数,:“如果字符串不符合该格式,函数可能会退回到任何特定于实现的启发式或特定于实现的日期格式。”不同的浏览器对日期函数的处理方式不同。有些返回日期有些返回无效日期。
date
对象在JavaScript中基本上被破坏了,如果您需要在我建议使用的前端处理日期,那么额外的字节将为您节省大量时间和头痛。在调用内置的日期解析例程之前编写日期解析例程似乎有点不合理。啊,JavaScript。。。