我有几种日期格式:
var date = "March 12th 2015, 8:37:29 pm";
我想获得一个日期对象,但是在创建日期对象时我的日期无效。
我试过这样做:
var date_o = new Date(date);
没有成功。还尝试过:
var at = Date.parse(date.replace(/[ap]m$/i, ''));
if(date.match(/pm$/i) >= 0) {
at += 12 * 60 * 60 * 1000;
}
var date_o = new Date(at);
没有成功。什么是正确的方法?
我想我应该告诉日期对象获取带"format('MMMM Do YYYY, h:mm:ss a')"
的字符串。这可能吗?
答案 0 :(得分:1)
如您所愿,使用构造函数获取日期:
var date = "March 12th 2015, 8:37:29 pm";
function getDate(str){
var monthList = ['January','February','March','April','May'
,'June','July','August','September','October','November','December'];
var year = str.slice(11,15);
var month = monthList.indexOf(str.slice(0,5));
var day = str.slice(6,8);
var isAm = str.slice(str.length-2);
var hour = isAm == 'am' ? +str.slice(17,18) + 12:str.slice(17,18);
var minute = str.slice(19,21);
var second = str.slice(22,24);
var date = new Date(year,month,day,hour,minute,second);
console.log(date)
return date;
}
getDate(date)
答案 1 :(得分:0)
已回答here。 我建议您使用库将字符串转换为日期。
答案 2 :(得分:0)
您的日期格式错误。只需删除coma
,th
和AM/PM
即可。
因此,输入文本必须类似于
var date = "March 12 2015 8:37:29";
所以在那之后你可以做
var date_o = new Date(date);
console.log(date_o instanceof Date); // ->true