JavaScript:Date 的 toString() 和 toLocaleString() 方法之间的区别
JavaScript: Difference between toString() and toLocaleString() methods of Date
我无法理解JavaScript中Date
对象的toString()
方法和toLocaleString()
方法之间的区别。我知道的一件事是,每当Date
对象需要转换为字符串时,都会自动调用toString()
。
以下代码始终返回相同的结果:
var d = new Date();
document.write( d + "<br />" );
document.write( d.toString() + "<br />" );
document.write( d.toLocaleString() );
输出为:
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)
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleString
基本上,它将日期格式化为在调用该函数的计算机上的格式,例如美国的"前月",世界其他大部分地区的
"前月"。编辑:
因为其他人指出上面的引用不一定可靠,所以从 ECMAScript 规范来看,这是怎么
回事:
15.9.5.2 Date.prototype.toString ( )
此函数返回一个字符串值。字符串的内容取决于实现>>,但旨在以方便、人类可读的形式表示当前时区的日期。
15.9.5.5 Date.prototype.toLocaleString ( )
此函数返回一个字符串值。字符串的内容依赖于实现>>,但旨在以方便、人类可读的形式表示当前时区中的日期,该形式对应于主机环境当前区域设置的约定。
由于您可以假设大多数实现将反映规范,因此不同之处在于toString()
只需要可读,toLocaleString()
应该以应符合用户基于其区域设置的期望的格式进行可读。
使用操作系统的区域设置将日期转换为字符串 约定。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleString
toLocaleString 在转换年份时的行为类似于 toString 操作系统格式不正确。
我刚刚在Chrome的控制台中检查了日期,并发现了演示格式的差异。希望这能有所帮助。
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 版本。其他浏览器使用其他实现,因此,虽然MDN文档很有用,但它不是权威的(它也是一个社区wiki,所以甚至不是官方的Mozilla文档),也不一定适用于其他浏览器。
最终的参考是 ECMAScript 语言规范,其中 Date.prototype.toString 和 Date.prototype.toLocaleString 的行为都是用独立于浏览器的术语来解释的。
值得注意的是,对于这两种方法,字符串都依赖于实现,这意味着不同的浏览器将返回不同的字符串。
只是补充一下。 除了日期,它还转换/格式化普通变量。这两个函数都用于格式化/将传递的参数转换为字符串,但参数的格式如何是要看的重点。
toLocalestring() 用于根据调用函数的地理位置返回格式化字符串。
为了简单起见。以这个例子为例。它显示了 toString() 如何不格式化变量,但 toLocaleSting() 将根据地理区域设置对其进行格式化。
let number = 1100;
console.log(number.toString()); // "1100"
console.log(number.toLocaleString()) // 1,100
let number = 1100;
console.log(number.toString());
console.log(number.toLocaleString());
对于程序员来说,这是一个很大的帮助,以避免编写额外的函数来格式化字符串或日期。 toLocaleString() 将处理这个问题。
希望你会发现它有点帮助和有趣。
- XMLHttpRequest对象的open()和send()方法之间有什么区别
- MongoDB原生:toString和toHexString方法之间有什么区别吗?
- JavaScript:Date 的 toString() 和 toLocaleString() 方法之间的区别
- 在Ember.js中的方法之间共享变量上下文
- 在要设置动画的所有方法之间进行选择
- 声明Javascript名称空间的两种方法之间的区别
- JQuery:什么'这两个$.get()方法之间的区别是什么
- 什么'这两种对象构造方法之间的区别是什么
- 使用:nth-child()选择器和.get()方法之间的性能差异
- 将返回值作为主干视图方法之间的参数传递
- 直接调用方法和使用“.call”方法之间的区别?WSS
- JS中各种对象值收集方法之间的差异
- Google Maps/Google Places:getPlace 和 getDetails 方法之间有区别吗?
- 在构造函数内部和外部定义公共方法之间有什么区别吗?
- Javascript在调用者“方法”之间更改变量
- 引导方法和运行方法之间的角度有什么区别
- 如何在 react 中的方法之间进行通信
- 这些ES6导入方法之间的区别是什么
- 使用回调和调用方法之间的区别
- 两种提交表格方法之间的差异