看来,当你用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表。请参阅这篇文章获得更多信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top