在我正在进行的项目中,我需要验证输入的日期 <input type="date">
使用Safari 4/5(在Mac OSX上),Javascript无法解析格式的日期YYYY-MM-DD,NaN而是返回而不是预期的纪元时间戳.
我正在使用以下技术在提交表单之前验证字段:
//value = '2010-06-21'
var stamp = Date.parse(value);
if (isNaN(stamp)) {
//notify user
} else {
value = new Date(stamp).format_mysql();
}
Run Code Online (Sandbox Code Playgroud)
format_mysql()原型函数在哪里将日期(正确)格式化为MySQL日期时间格式(YYYY-MM-DD).
将-'s 替换为' /(YYYY/MM/DD)会产生"正确"的时间戳.
我应该注意,该字段应该接受任何日期格式,而不仅仅是YYYY-MM-DD,虽然我想,但我不能使用像Date.js这样的库
我该如何解决这个问题,还是有更好的方法来解析/验证日期?
我有一个从字符串创建日期的网页。除了我得到无效日期的 iphone 之外,它工作正常。
我已经阅读了一些关于 IOS 处理日期的内容,但没有看到修复程序。
我已经在股票浏览器和最新版本的 Chrome 中打开了该页面并收到相同的错误。适用于 Android 和 PC。
dateString = "2013-08-06"
date = new Date(dateString);
Run Code Online (Sandbox Code Playgroud)
我试过这个修复,但同样的错误
var arr = "2010-03-15 10:30:00".split(/[- :]/),
date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
Run Code Online (Sandbox Code Playgroud)