有没有办法在 JavaScript 中获取系统短日期格式?
例如系统的短日期是否为美国格式,例如。 m/d/Y 或欧洲的,例如。日/米/年
请注意: 这不是关于格式化日期或基于地理位置计算日期的问题,而是关于从操作系统/系统获取格式的问题
最佳答案
经过一番研究后,我得出结论,从技术上讲,不可能获得区域设置 - 并且由此,日期格式 - 但您可以做其他几件事。选择以下选项之一:
a) 已经提到且已过时的“toLocaleString()”函数:
var myDate = new Date(1950, 01, 21, 22, 23, 24, 225);
var myDateFormat = myDate.toLocaleString();
alert (myDateFormat);
问题:
1) 您无法通过“myDateFormat.replace”获取日期掩码,因为月份在字符串中未存储为“01”、“02”等,而是存储为文本,基于语言环境(如英语中的“February”,但在希腊语中是“Φεβρουìριος”,谁知道克林贡语中的意思)。
2) 不同浏览器上的不同行为
3) 不同操作系统和浏览器版本上的不同行为。 ..
b) 使用toISOString()
函数代替toLocaleString()
。您不会获得语言环境日期掩码,但会获得一个日期,您可以从中判断日期的哪一部分(即“月”或“日”在该字符串中的位置)。您还可以使用 getUTCDate()
、getUTCMonth()
和 getUTCDay()
函数。您仍然无法分辨客户使用的日期格式,但可以分辨出您在获取日期时使用的年/月/日/等;使用上面的代码
来测试我在这里提到的功能,看看你能得到什么。
c) 阅读
Inconsistent behavior of toLocaleString() in different browser文章并使用那里描述的(恕我直言)解决方案
关于JavaScript - 获取系统短日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16210058/