date from string YYMMDDHHMMSS

问题描述:

我有一个格式为YYMMDDHHMMSS的字符串。如何从这个模式创建一个js日期对象?有没有内置的方法呢?或者我必须创建将字符串拆分为字符串数组(每个长度为2个字符),然后用于新的数据对象?date from string YYMMDDHHMMSS

+1

可能重复http://*.com/questions/476105/how-can-i-convert-strin克到日期时间与 - 格式规格-在JavaScript的 – 2012-01-11 15:16:10

最简单的方法就是解析每个日期部分并将它们以正确的顺序传递给Date构造函数;

var s = "120109123456"; 
var d = new Date(2000 + +s.substr(0, 2), 
    s.substr(2, 2) - 1, 
    s.substr(4, 2), 
    s.substr(6, 2), 
    s.substr(8, 2), 
    s.substr(10, 2)); 

(假设本世纪)

您可以使用正则表达式来分割字符串,然后设置日期的属性,像这样:

var s_date = "720417121253"; //YYMMDDHHMMSS 
var parts = s_date.match(/\d{2}/g); 
var date = new Date(); 
date.setYear(parts[0]); 
date.setMonth(parts[1]); 

请注意,您使用2个位数的年,这是有点问题

var d = new Date; 
var methods = ['Year','Month','Date','Hours','Minutes','Seconds']; 
var time = "120111120001"; 
for(var i=0,j=0;i<methods.length;i++,j+=2) { 
    var method = 'set'+methods[i]; 
    var split = time.substr(j,2); 
    d[method](split); 
}