[英]How can convert YYYY-MM-DD hh mm ss into MonthName, date, year | Hour:Minuts (am/pm) in JavaScript or jQuery
[英]Javascript convert mm/dd/yyyy hh:mm(AM|PM) to valid date object
我正在尝试将表示日期(例如“ 07/13/2015 12:00 AM”)的字符串转换为javascript中的有效日期对象。 调用新日期(“ 2015年7月13日12:00 AM”)会产生无效日期。
任何帮助表示赞赏。
似乎日期解析器不喜欢直接将AM / PM与分钟/秒相对。
只是一个快速修复
var date = "07/13/2015 12:00AM";
date = date.substr(0, date.length-2) +' '+ date.substr(-2);
new Date(date);
此函数会将日期时间字符串转换为24小时格式,现在可以由Date()处理
function set24Hrs(d){
if (d.slice(-2) === "PM"){
var hrs = parseInt(d.slice(-7,-5))
var mins = d.slice(-4,-2)
hrs = hrs + 12
var dd = d.slice(0,9) + " " + hrs + ":" + mins;
return dd;
} else if(d.slice(-2) === "AM"){
return (d.slice(0, 16));
} else {
throw ("UNRECOGNIZED_FORMAT","set24Hrs() Received Unrecognized Formatted String");
}
}
因此,您可以这样使用:
c = new Date(set24Hrs(03/1/2015 3:00PM))
// returns: Sun Mar 01 2015 15:00:00 GMT+0200 (Egypt Standard Time)
现在您有了一个可行的解决方案,但是,如果您有很多代码可以使用Javascript处理日期,那么我建议您看一下date.js和moement.js之类的库 。
您可以删除日期并重新构建,例如:
var timeStr = "07/13/2015 12:00AM";
var dateFormat = /(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})([AP]M)/;
var dateArray = dateFormat.exec(timeStr);
var d = new Date(dateArray[3],parseInt(dateArray[1])-1,dateArray[2],parseInt(dateArray[4])-(dateArray[6] == 'AM' ? 12 : 0),dateArray[5]);
alert(d);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.