代码之家  ›  专栏  ›  技术社区  ›  Jared

Javascript是否将“05/27 11:00pm”转换为日期?

  •  0
  • Jared  · 技术社区  · 15 年前

    5 回复  |  直到 15 年前
        1
  •  4
  •   Ben Blank Jarret Hardie    15 年前

    只需将许多不同的日期格式传递给 Date() 建造商:

    var date = new Date(datestring);
    

    您的示例日期不起作用有两个原因。首先,它没有一年的时间。第二,在“pm”之前需要有一个空格(我不知道为什么)。

    // Wed May 27 2009 23:00:00 GMT-0700 (Pacific Daylight Time)
    var date = new Date("2009/05/27 11:00 pm")
    

    如果您收到的日期格式一致,可以通过以下方式进行修复:

    var datestring = "05/27 11:00pm";
    var date = new Date("2009/" + datestring.replace(/\B[ap]m/i, " $&"));
    
        2
  •  3
  •   Nosredna    15 年前

    我会使用Datejs库的解析方法。

    http://www.datejs.com/

    下午5月27日11:00

    2009年5月27日星期三晚上11:00:00

        4
  •  0
  •   Joe    15 年前

    不是最干净的,但有效:

    var strDate = '05/27 11:00pm';
    var myDate = ConvertDate(strDate, '2009');
    
    function ConvertDate(strWeirdDate, strYear)
    {
        strWeirdDate = strWeirdDate.replace(/ /, '/' + strYear + ' ');
        return new Date(strWeirdDate);
    }
    

    可能还想先修剪一下绳子。

        5
  •  0
  •   Jim Davis    15 年前

    DP_DateExtensions Library

    它有一个日期/时间解析方法——传入一个掩码,它将验证输入并返回一个匹配的数据对象。

    还支持日期/时间格式、日期数学(添加/减去日期部分)、日期比较、专业日期解析等。它是开源的。