2013-04-05 48 views
2

嗯...好吧,所以我一直在网上搜索了2天,现在没有任何运气。我已经看到很多关于如何格式化一个JavaScript日期的答案,例如new Date()。toString(“yyyy-MM-dd”)...这会返回类似2013-04-05的东西。Javascript - 检索操作系统日期格式

这绝对不是问题。

我想要什么,是设置在我的操作系统显示日期的格式,然后检索特定的格式,并在浏览器中显示它的可能性。

例如,假设我将操作系统中日期的格式更改为MM-yyyy/dd(这是用于争论的问题,无论这种方式是否有效都是无关紧要的))。那么我希望在我的操作系统中看到04-2013/05,对吧?接下来,我想通过Javascript在浏览器中检索此特定格式,以便我可以使用它在我的网页中设置日期格式。

如果这是精神病,不能做,请告诉我,因为我已经从搜索头疼。 另外,如果你说使用someDateObject .toLocaleDateString()不正是为什么.toLocaleDateString会的工作解释,我会忽略它,因为我已经试过在我的操作系统设置我的日期格式转换为多种格式,每颗我使用.toLocaleDateString(),我收到相同的格式:dd/MM/yyyy

+0

请检查'.toLocaleString'方法进行格式化。你有看看这里http://stackoverflow.com/questions/85116/how-do-i-display-a-date-time-in-the-users-locale-format-and-time-offset或这里http ://stackoverflow.com/questions/2388115/get-locale-short-date-format-using-javascript – 2013-04-05 13:18:55

+1

已经看到他们两个...你测试了他们,我知道一个事实,“mwrf”的答案http://stackoverflow.com/questions/2388115/get-locale-short-date-format-using-javascript页面,这似乎是最完整的没有解决我的问题...谢谢你尝试虽然 – Deceased 2013-04-05 13:34:35

回答

1

使用.toLocaleDateString方法语言环境的第一个属性。

当前的区域可以通过navigator.language获得(在Firefox或Chrome)参数。在IE 您可以获得navigator.browserLanguage或navigator.systemLanguage

比IE等浏览器是无法获得系统语言这样

在这之后,你可以调用新Date.toLocaleString(navigator.language | | navigator.browserLanguage),它会正确地依赖于浏览器的语言

+0

我得到你在说什么,这是有道理的,用这个你可以强制一个地方,例如:“de-DE”......但这不是我想要的。 我用MM-yyyy/dd的激进例子来证明我不一定想要一个已知的地方。我需要的是用户在他/她的操作系统中指定的日期格式。我真的很欣赏这个帮助。 – Deceased 2013-04-05 13:53:41

+0

如果用户使用IE浏览器,可以throught navigator.systemLanguage变量中,你仍然可以猜测对方的情况下,使用的语言是一样的他的浏览器的语言,甚至要求他与这个属性保存到饼干 – Antharon 2013-04-05 14:19:38

+1

嗯...我刚刚尝试过navigator.systemLanguage,尽管它很整洁,但它仍然不是我正在寻找的技巧。请参阅,我知道如何获取/设置区域设置,但我想要做的是获取/设置用户设置到其机器中的个性化日期格式。我想这样做,而不必让他们在我的网络应用程序中再次设置它。我想要的是让网络应用程序选择日期格式,例如MM-yyyy/dd并使用它在应用程序的其余部分显示日期。 – Deceased 2013-04-05 14:37:37