在javascript中设置区域设置

时间:2010-03-05 08:44:49

标签: javascript browser date internationalization locale

jQuery通过以下方式测试日期的有效性:

!/Invalid|NaN/.test(new Date(value))

new Date(dateString)Date.parse(dateString)相同,并使用浏览器/操作系统区域设置来解析字符串。

我正在尝试解析DD/MM/YYYY但我收到错误,因为我的浏览器正在寻找MM/DD/YYYY。由于我的产品仅供DD/MM人使用,因此我想强行执行此操作。

我可以编写自定义验证器,但是也可以通过JavaScript更改浏览器区域设置吗?

4 个答案:

答案 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
如果您需要处理其他语言环境/脚本中的日期字符串,

Globalize也有date parsing module

答案 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函数。

其中两个函数是setlocale()和date()。你可以使用它们。