jQuery通过以下方式测试日期的有效性:
!/Invalid|NaN/.test(new Date(value))
new Date(dateString)
与Date.parse(dateString)
相同,并使用浏览器/操作系统区域设置来解析字符串。
我正在尝试解析DD/MM/YYYY
但我收到错误,因为我的浏览器正在寻找MM/DD/YYYY
。由于我的产品仅供DD/MM
人使用,因此我想强行执行此操作。
我可以编写自定义验证器,但是也可以通过JavaScript更改浏览器区域设置吗?
答案 0 :(得分:3)
您应该使用moment.js来解析日期。
//parse string according to format and return new moment
var day = moment("16/12/2017", "DD/MM/YYYY");
var dayAsDate = day.toDate(); //you can even covert the moment to a Date
如果您需要处理其他语言环境/脚本中的日期字符串,
答案 1 :(得分:1)
Use现在可以使用JavaScript的Internationalization API,因为所有浏览器现在都支持它。它允许您传递语言环境,以自定义日期格式。
console.log(新的Intl.DateTimeFormat('en-GB')。format(日期));
参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat
答案 2 :(得分:-2)
如果您的产品仅供DD / MM / YYYY用户使用,请将浏览器设置为DD / MM / YYYY支持区域设置。
答案 3 :(得分:-4)
您无法更改区域设置,因为EMCAScript specification中没有此类功能。
但是,有一个名为php.js的很好的包在JavaScript中实现了PHP函数。