【问题标题】:JavaScript Date.toString() radix argument errorJavaScript Date.toString() 基数参数错误
【发布时间】:2013-05-13 16:44:50
【问题描述】:

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

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

错误是:

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

只是想格式化日期...

【问题讨论】:

  • JavaScript 日期不能这样格式化,除非您尝试使用一些花哨的附加库(在这种情况下,它似乎不起作用:-)
  • 您尝试过datejs 还是已经在使用它?
  • 您链接到的答案使用date time format library,没有它就行不通。
  • 我会推荐它。 Datejs 真的很有帮助,尤其是在全球化方面。你试过'toLocaleString()'吗?
  • @user1477388:但是你不想交换日期和月份吗?否则.slice(0, 10) 当然就足够了……

标签: javascript jquery


【解决方案1】:

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

而且由于 JavaScript 没有原生的日期格式化功能,所以只有依赖于实现的 toStringtoLocalString 以及标准化的 toISOStringtoUTCString(虽然在旧版 IE 中不支持)。相反,您必须通过获取单个组件并将它们连接起来手动进行格式化。幸运的是,there's a bunch of libaries 可以帮助您。

【讨论】:

    【解决方案2】:

    JavaScript Date.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

    【讨论】:

    • 这不是他调用的 Date toString 方法……
    猜你喜欢
    • 2012-08-30
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多