toLocaleDateString Javascript日期格式问题

MJC*_*der 6 javascript string datetime date cross-browser

我有一个脚本,我想将日期格式化为短日期格式,即:

2013年7月3日或7月3日13日,第一个日期格式在Chrome中呈现,但每隔一个浏览器不呈现 - 它显示日期月份名称和年份.

function dateFormatter(date) {
  return date.toLocaleDateString();
}
Run Code Online (Sandbox Code Playgroud)

有点混淆为什么会发生这种情况.是因为浏览器不支持tolocalDateString();

我是否需要构建自定义日期字符串才能使其正常工作?

对不起,如果它有点模糊 - 我已经看过W3C网站,但有时不相信该网站.

Kot*_*lar 10

默认格式toLocaleDateString是实现定义的.如果你想的钱包显示的精确控制,使用浏览器支持localesoptions论据toLocaleDateString.不幸的是,此刻仅意味着Chrome.

如果您不关心用户及其语言环境,并希望将每个人与美国日期格式混淆,那么是的,您可以按照@kennebec的建议对日期部分进行硬编码.


ken*_*bec 4

function dateFormatter(date){
    if(Date.parse('2/6/2009')=== 1233896400000){
        return [date.getMonth()+1, date.getDate(), date.getFullYear()].join('/');
    }
    return [date.getDate(), date.getMonth()+1, date.getFullYear()].join('/');
}
Run Code Online (Sandbox Code Playgroud)

  • 这根本不知道区域设置...... (8认同)
  • @SerjSagan:这个答案在三个方面不是区域设置感知的:(a)“Date.parse()”的行为与除[基于 ISO 8601 的格式](http://www.ecma-international) 中的字符串不同。 .org/ecma-262/6.0/#sec-date-time-string-format)是[实现定义](http://www.ecma-international.org/ecma-262/6.0/#sec-date。解析)。(b) 输出使用固定分隔符“/”,并且 (c) 不考虑短日期格式将 _year_ 首先放置的语言环境。 (2认同)