javascript:如何解析日期字符串

格式为:MMDDHHMM

我想单独考虑一个月,一天,一小时,一分钟,怎么做?

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

如果你保证它总是采用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]); 

编辑

在这里找到的moment.js库看起来很神奇!

结束编辑

这应该有助于… 与日期合作

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 

检查一下

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

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

要将日期解析为特定格式,请参阅此处