我正在尝试从m / d / Y H:I:s字符串创建一个JavaScript Date对象。以下是我的尝试。没有H:I:s
它可以正常工作,但不适用它。如何从m / d / Y H创建JavaScript Date对象:I:s?
var dt=' 5/5/1964 11:13:00 ';
var valid=false;
dt = dt.replace(' ',' '); //Get rid of double spaces
dt.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); //Trim string
dt=dt.split(' ');
var d=(dt[0])?dt[0].split('/'):[];
var t=(dt[1])?dt[1].split(':'):[];
if (d.length === 3) {
d=[d[2],d[1]-1,d[0]]; //Change to YMD and month to 0 to 11
//var date=new Date.apply(null, d.concat(t)); //doesn't work
dt = d.concat(t).join();
console.log(dt);
var date=new Date(dt);
console.log(date);
if ( Object.prototype.toString.call(date) === "[object Date]" && !isNaN( date.getTime() )) {
// it is a date and is valid. date.valueOf() could also work instead of date.getTime()
valid=true;
}
}
if(valid){ doSomethingWithDate(date);}
答案 0 :(得分:3)
没有真正需要对字符串进行特殊解析,因为Date
类构造函数(内部Date.parse
)可以自动解析给定的格式:
var date = new Date(' 5/5/1964 11:13:00 ');
console.log(date); // e.g. Tue May 05 1964 11:13:00 GMT+0100 (BST)
在MDN中查看更多格式示例。
答案 1 :(得分:1)
正在运行new Date(" 5/5/1964 11:13:00 ")
对我来说很好。