jQuery通过以下方式测试日期的有效性:
!/Invalid|NaN/.test(new Date(value))
new Date(dateString)
与Date.parse(dateString)
相同,并使用浏览器/OS区域设置来解析字符串。
我试图解析DD/MM/YYYY
,但我得到了一个错误,因为我的浏览器正在寻找MM/DD/YYYY
。由于我的产品将只由DD/MM
的人使用,我想强制这种行为。
我可以编写一个自定义验证器,但是是否也可以通过JavaScript更改浏览器的区域设置?
4条答案
按热度按时间8gsdolmq1#
现在你可以使用JavaScript的国际化API了,因为所有浏览器都支持它,它允许你传入一个locale,这将定制日期格式。
控制台.log(新的国际日期时间格式('en-GB').format(date));
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat
p1tboqfb2#
您应该使用moment.js来解析日期。
如果您需要处理其他语言环境/脚本中的日期字符串,Globalize也有一个date parsing module。
对于其他从Google进入这里的用户,您不能从JS更改浏览器或Javascript区域设置,但可以用途:
Intl.DateTimeFormat
来 * 格式化 * 日期(但不解析它们)-不清楚它支持多少语言环境和脚本,可能取决于浏览器vybvopom3#
如果您的产品仅由DD/MM/YYYY用户使用,请将浏览器设置为支持DD/MM/YYYY的区域设置。
1l5u6lss4#
您无法更改区域设置,因为EMCAScript specification中没有此类功能。
但是,有一个很好的包php.js,它在JavaScript中实现了PHP函数。
其中两个函数是setlocale()和date(),您可以使用它们。