操纵在Javascript日期没有Date对象
-
20-09-2019 - |
题
看来,当你用datestring初始化到美国的日期,我不能使用JavaScript Date对象,因为它inherintly默认值。没有任何文化的信息传递到日期对象
的方式即。无论什么客户端的本地设置
变种d =新的日期(“08/10/2009”)总是创建代表2009年8月10日,而不是2009年10月8日的日期对象,如果客户端的语言环境是英国。
所以,考虑到我的要求是能够加/减天/月/年易有易做这个而不Date对象
这是一个聪明的办法所有我需要做的是,每天添加到日期(或日期的字符串表示)。所以,如果我的代码检测区域setttings在美国,当它看到一个字符串,如“2009年10月8日”它它敲敲罢了上升到“10/09/2009”,但如果它检测到它是在英国,它会已经知道它的日期的英国串表示和重击它为“2009年9月10日”
解决方案
有关日期操作和定位上的JavaScript我总是建议的 DateJS 库。
该库提取使用Date对象的,具有很好的本地化选项,功能强大的日期解析和格式化,它也有一个非常漂亮流畅的API。
其他提示
如果您知道强>你正在输入格式化日/月/年,你可以容易地组装正确的日期。
function britDay(D){
D= D.match(/\d+/g);
return new Date(+D[2], D[1]-1, +D[0]);
}
toLocaleDateString将返回日期由用户期望的格式。
依托该服从特定格式编排规则的用户输入是optimistic- 这就是为什么大多数网站都使用独立的,标记输入或选择字段的月,日和年。
您可能知道,它很容易添加一天的日期,只是增加86,400 * 1000毫秒的日期。这听起来像显示在你的语言环境是问题;不Date.toLocaleString()不能为你做正确的事?
dojo.date.locale.parse将能够解析根据你所选择的区域设置的格式化字符串。它拥有一个基于关文化数据unicode.org/cldr表。请参阅这篇文章获得更多信息。