【问题标题】:javascript: how to parse a date stringjavascript:如何解析日期字符串
【发布时间】:2011-06-08 11:29:11
【问题描述】:

格式为: 嗯嗯

我想分别取月、日、小时、分钟,该怎么做?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:
    var dateString = '13011948';
    

    文本的长度是固定的,并且总是在相同的位置。然后你可以用substr将它们切割成部分,然后用parseInt将它们转换成数字。

    var month = parseInt(dateString.substr(0, 2), 10),
          day = parseInt(dateString.substr(2, 2), 10),
         hour = parseInt(dateString.substr(4, 2), 10),
       minute = parseInt(dateString.substr(6, 2), 10);
    

    或者,将其放在单个日期对象中。

    var date = new Date();
    date.setMonth   (parseInt(dateString.substr(0, 2), 10) - 1);
    date.setDate    (parseInt(dateString.substr(2, 2), 10));
    date.setHours   (parseInt(dateString.substr(4, 2), 10));
    date.setMinutes (parseInt(dateString.substr(6, 2), 10));
    

    【讨论】:

      【解决方案2】:

      如果您保证它始终采用 MMDDHHMM 格式,则可以使用简单的正则表达式对其进行解析。

      var d = "01121201";
      var m = /([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/.exec(d);
      
      console.log(m);
      

      哪个会输出

      ["01121201", "01", "12", "12", "01"]
      

      但如果可能的话,使用实际的日期函数会更好。

      您可以执行以下操作来获取上述正则表达式匹配的结果以创建一个真正的 Javascript Date 对象:

      //The year will default to the current year
      var realDate = new Date();
      realDate.setMonth(m[1]);
      realDate.setDate(m[2]);
      realDate.setHours(m[3]);
      realDate.setMinutes(m[4]);
      

      【讨论】:

      • 你的胡须令人印象深刻!
      • 你现在应该看到了!那张照片很短:)
      【解决方案3】:

      编辑

      发现 here 的 moment.js 库看起来很棒!

      结束编辑

      这应该会有所帮助...working with Dates

      【讨论】:

      • 哇,兴高采烈的还在跑!!在千禧年之前(早在我成为网络开发人员之前),我曾经去那里获取免费的网站模板!为走下记忆之路欢呼:-)
      • 大声笑我从未听说过。我搜索时在谷歌中弹出。不过,这看起来像是一个很好的资源......
      • “使用库 X”的答案应该是 cmets,它们不是答案。
      【解决方案4】:

      javascript Date 对象中有几种方法可以获取这些参数

      var curdate = new Date(); 
      var mday = curdate.getDate();        //returns day of month
      var month = curdate.getMonth();      //returns month 0-11
      var hours = curdate.getHours();      //returns hours 0-23
      var minutes = curdate.getMinutes();  //returns minutes 0-59
      

      查看this

      如果你没有日期对象,你可以使用它来解析它

      var curdate = Date.parse("Jan 1, 2010");
      

      要将日期解析为您的特定格式,请参阅this

      【讨论】:

      • 你确定第二个例子是正确的吗? Date.parseDate() 对我来说似乎不存在,而且 Date.parse() 函数采用 IETF 格式的单个参数。
      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2011-07-21
      • 1970-01-01
      相关资源
      最近更新 更多