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

JavaScript: Difference between toString() and toLocaleString() methods of Date

我无法理解javascript中Date对象的toString()toLocaleString()方法之间的区别。我知道的一点是,每当需要将Date对象转换为字符串时,都会自动调用toString()

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

1
2
3
4
?var d = new Date();
document.write( d +"<br />" );
document.write( d.toString() +"<br />" );
document.write( d.toLocaleString() );

?输出为:

1
2
3
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)

developer.mozilla.org https:///EN /文档/美国/全球_ JavaScript日期对象参考/ / / tolocalestring

基本上,它的日期格式来格式化知识,它会在电脑那里是所谓的功能,例如在一个在美国,两个月前一天在世界其他地方。

编辑:

因为一些人出上面的参考圆是不是很可靠,这是怎样从ECMAScript的规格:

15.9.5.2 Date.prototype.toString ( )

This function returns a String value. The contents of the String are implementation->> dependent, but are intended to represent the Date in the current time zone in a convenient, human-readable form.

15.9.5.5 Date.prototype.toLocaleString ( )

This function returns a String value. The contents of the String are implementation->>dependent, but are intended to represent the Date in the current time zone in a convenient, human-readable form that corresponds to the conventions of the host environment‘s current locale.

blockquote></

因为你可以认为我们最想实现的差异反映的规范,这需要的只是一个toString()toLocaleString()可读,可读的格式应在A用户的期望是,应该基于他们的比赛现场。


Converts a date to a string, using the operating system's locale's
conventions.

developer.mozilla.org https:///EN /文档/美国/全球_ JavaScript日期对象参考/ / / tolocalestring

toLocaleString behaves similarly to toString when converting a year
that the operating system does not properly format.


我只是检查控制台的铬和/或日期的表示格式的差异。希望这是有帮助的。

1
2
3
4
var d = new Date();

console.log(d.toLocaleString()); //"04.09.2016, 15:42:44"
console.log(d.toString());       //"Sun Sep 04 2016 15:42:44 GMT+0300 (FLE Daylight Time)"

有很多人,但没有权威。注意的是Mozilla的JavaScript文件,这是ECMAScript for浏览器的版本。其他使用其他浏览器的实现,因此,在将文档是有用的,不是权威(它是a社区维基,这甚至不是Mozilla官方文档)和不一定适用于其他浏览器。

权威的参考是ECMAScript语言规范,在date.prototype.tostring行为都是在浏览器和date.prototype.tolocalestring解释独立条款。

我们的方法是能够实现的字符串是不同的依赖性,这意味着不同的浏览器将返回字符串。