JavaScript:Date的toString()和toLocaleString()方法之间的区别

M. *_*far 10 javascript date

我无法理解JavaScript中对象toString()toLocaleString()方法之间的区别Date.我知道的一件事是,toString()只要Date需要将对象转换为字符串,就会自动调用它.

以下代码始终返回相同的结果:

?var d = new Date();
document.write( d + "<br />" );
document.write( d.toString() + "<br />" );
document.write( d.toLocaleString() );
Run Code Online (Sandbox Code Playgroud)

输出是:

Tue Aug 14 2012 08:08:54 GMT+0500 (PKT)
Tue Aug 14 2012 08:08:54 GMT+0500 (PKT)
Tue Aug 14 2012 08:08:54 GMT+0500 (PKT)
Run Code Online (Sandbox Code Playgroud)

phe*_*nal 15

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleString

基本上,它将日期格式化为在调用函数的计算机上格式化的方式,例如美国的前一天,世界其他大部分地区的前一天.

编辑:

因为其他一些人指出上面的参考文献没有必要可靠,所以ECMAScript的规范如何:

15.9.5.2 Date.prototype.toString ( )

此函数返回String值.String的内容是implementation - >> dependent,但是用于以方便的,人类可读的形式表示当前时区中的Date.

15.9.5.5 Date.prototype.toLocaleString ( )

此函数返回String值.String的内容是implementation - >> dependent,但是用于以方便的,人类可读的形式表示当前时区中的Date,该形式对应于主机环境的当前语言环境的约定.

由于您可以希望假设大多数实现都会反映规范,因此差异toString()只是要求可读,toLocaleString()应该以可以根据用户的区域设置匹配用户期望的格式进行读取.

  • 来自https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toString - toString始终以美式英语返回日期的字符串表示形式. (2认同)

The*_*net 5

使用操作系统的语言环境约定将日期转换为字符串.

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleString

转换操作系统未正确格式化的年份时,toLocaleString的行为与toString类似.