4

为什么以下代码不会将我的日期输出到字符串!?

var d1 = Date.parse('10/29/1990 12:00:00 AM');
console.log(d1.toString('dd/MM/yyyy'));

错误是:

未捕获的 RangeError:toString() 基数参数必须介于 2 和 36 之间

只是想格式化日期...

4

2 回答 2

9

因为d1不是一个Date对象,而是一个数字。Date.parse返回毫秒表示,您需要将其输入new DateDate直接使用构造函数。

并且因为 JavaScript 没有原生的日期格式化功能,所以只有实现相关的toStringandtoLocalString 和标准化的toISOStringand toUTCString(虽然在旧的 IE 中不支持)。相反,您必须通过获取单个组件并将它们连接起来手动进行格式化。幸运的是,有很多库可以帮助你。

于 2013-05-13T19:03:22.533 回答
2

JavaScriptDate.prototype.toString方法不接受任何参数(如格式化等)。

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

使用Date.prototype.toLocaleDateString可能会有所帮助:d1.toLocaleDateString('en')对我有用,但请在此处查看所有细则:

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

于 2013-05-13T16:51:23.323 回答