【问题标题】:Jquery/javascript datetimejQuery/javascript 日期时间
【发布时间】:2009-08-22 22:11:37
【问题描述】:

我想转换这个字符串 23/08/2009 12:05:00 到javascript日期时间

我该怎么做?

【问题讨论】:

    标签: c# javascript jquery


    【解决方案1】:

    我认为这可以帮助你http://www.mattkruse.com/javascript/date/

    有一个 getDateFromFormat() 函数,您可以稍微调整一下来解决您的问题。

    【讨论】:

    • @lucas 那么有没有办法解析它呢?
    • 解析函数不接受这种格式,试试吧,在 IE 和 FF 你会得到 Mon Nov 08 2010 12:05:00,在 Chrome 中只是 无效日期
    • @CMS:这是第一次猜测。我找到了另一种方法。谢谢。
    【解决方案2】:

    您可以使用正则表达式获取日期部分,并调用Date 构造函数,调整月份编号,因为月份编号从零开始,例如:

    function customDateParse (input) {
      var m = input.match(/(\d+)/g);
      return new Date(m[2], m[1] - 1, m[0], m[3], m[4], m[5]);
    }
    
    customDateParse('23/08/2009 12:05:00');
    // Sun Aug 23 2009 12:05:00
    

    如果你不喜欢正则表达式:

    function customDateParse (input) {
      input = input.split(' ');
      var date = input[0].split('/'),
          time = input[1].split(':');
    
      return new Date(date[2], date[1] - 1, date[0], time[0], time[1], time[2]);
    }
    
    customDateParse('23/08/2009 12:05:00');
    // Sun Aug 23 2009 12:05:00
    

    但是,如果您发现这很复杂并且您愿意做更多的日期操作,我强烈推荐您使用 DateJS 库,它是小型、开源和语法糖...

    【讨论】:

    • 这似乎有点复杂。由于 JavaScript 中有一个 getDateFromFormat() 方法可用,这似乎也是对 Regex 的过度使用。
    • 查看我在回答中提供的链接。
    【解决方案3】:

    使用 momentjs 将字符串转换为 Date 对象。

    var date = '23/08/2009 12:05:00';
    var datetime = moment(date, 'DD/MM/YYYY HH:mm:ss');
    datetime = moment.toDate();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多