代码之家  ›  专栏  ›  技术社区  ›  Kyle Hotchkiss

如何在javascript中将字符串转换为日期

  •  1
  • Kyle Hotchkiss  · 技术社区  · 15 年前

    我怎么能把这根绳子转起来

    Sun Apr 25, 2010 3:30pm
    

    在javascript中输入一个有效的日期(最小代码是我在这里的目标)?

    3 回复  |  直到 15 年前
        1
  •  2
  •   helios456    15 年前

    你可以试试datejs http://www.datejs.com/ 这不需要您编写太多代码,但需要在HTML中包含这个脚本。

        2
  •  3
  •   strager    15 年前

    Date.parse 几乎得到你想要的。它窒息在 am / pm 部分,但是通过一些黑客攻击,你可以让它工作:

    var str = 'Sun Apr 25, 2010 3:30pm',
        timestamp;
    
    timestamp = Date.parse(str.replace(/[ap]m$/i, ''));
    
    if(str.match(/pm$/i) >= 0) {
        timestamp += 12 * 60 * 60 * 1000;
    }
    

    小代码如下:

    var s = 'Sun Apr 25, 2010 3:30pm';
    
    Date.parse(s.slice(0,-2))+432E5*/pm$/.test(s);
    
        3
  •  2
  •   Community CDub    8 年前

    任何规范都不能保证您的方法的结果。

    ECMAScript版本3是相关的版本,没有指定date.parse可以解析的任何格式。此外,规范规定 Date.parse 提供的值不能由 Date.prototype.toString Date.prototype.toLocaleString 结果取决于实现。

    …所产生的价值 数据解析 当给定的任何字符串值不能由 toString toUTCString 方法。

    不要期望一致的结果来自 数据解析 以您自己的区域设置特定的日期格式传递时。

    可以使用ISO-8601格式,程序可以解析该值。参见: Date constructor returns NaN in IE, but works in Firefox and Chrome