[英]How to covert “12:00 PM” into Date object in JavaScript?
var time = "12:00 PM"
var startTime = Date.parse(time); // output is NaN
alert(startTime);
如何在JavaScript中將字符串時間轉換為時間對象?
所需的輸出= 2014年8月14日,星期四,格林尼治標准時間+0530(IST)
因為我需要將startTime與當前時間進行比較...
var d = new Date();
d.setHours(12, 0, 0, 0);
alert(d);
如果必須解析時間字符串,則可以嘗試此操作...
var time = '12:00 PM';
var startTime = new Date();
var parts = time.match(/(\d+):(\d+) (AM|PM)/);
if (parts) {
var hours = parseInt(parts[1]),
minutes = parseInt(parts[2]),
tt = parts[3];
if (tt === 'PM' && hours < 12) hours += 12;
startTime.setHours(hours, minutes, 0, 0);
}
alert(startTime);
JSFiddle〜http: //jsfiddle.net/tp1L63bu/
清理/合並/測試邊際案例,Phil以上建議:
const militaryTime = (time, date = new Date()) => {
const parts = time.trim().match(/(\d+):(\d+)\s?((am|AM)|(pm|PM))/)
const p = {
hours: parseInt(parts[1]),
minutes: parseInt(parts[2]),
period: parts[3].toLowerCase()
}
if (p.hours === 12) {
if (p.period === 'am') {
date.setHours(p.hours - 12, p.minutes)
}
if (p.period === 'pm') {
date.setHours(p.hours, p.minutes)
}
} else {
if (p.period === 'am') {
date.setHours(p.hours, p.minutes)
}
if (p.period === 'pm') {
date.setHours(p.hours + 12, p.minutes)
}
}
return date
}
militaryTime(' 4:00 am ') // Thu May 30 2019 04:00:48 GMT-0400 (Eastern Daylight Time)
militaryTime('4:00pm') // Thu May 30 2019 16:00:42 GMT-0400 (Eastern Daylight Time)
militaryTime('12:00am') // Thu May 30 2019 00:00:25 GMT-0400 (Eastern Daylight Time)
militaryTime('12:00pm') // Thu May 30 2019 12:00:46 GMT-0400 (Eastern Daylight Time)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.