javascript:如何解析日期字符串

时间:2011-01-13 12:30:37

标签: javascript jquery

格式为: MMDDHHMM

我想单独考虑月,日,时,分,怎么做?

4 个答案:

答案 0 :(得分:7)

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));

答案 1 :(得分:3)

修改

找到了here的moment.js库看起来很神奇!

结束编辑

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

答案 2 :(得分:3)

如果您保证它始终采用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 :(得分:2)

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