我有两次12小时格式。示例上午10:00和下午3:30。我想在他们之间显示330分钟。我尝试了很多方法,但无法获得准确的结果。
我的剧本:
time1= 'yy/mm/dd 10:00 am';
time2='yy/mm/dd 3:30 pm';
from1 = new Date(time1);
to1 = new Date(time2);
console.log(from1-to1);
答案 0 :(得分:0)
我会隔离你的时间部分,并使用24小时的时间来简化事情。
var start_time ="1000";
var end_time ="1530";
var start_hour = start_time.slice(0, -2);
var start_minutes = start_time.slice(-2);
var end_hour = end_time.slice(0, -2);
var end_minutes = end_time.slice(-2);
var startDate = new Date(0,0,0, start_hour, start_minutes);
var endDate = new Date(0,0,0, end_hour, end_minutes);
var millis = endDate - startDate;
var minutes = millis/1000/60;
console.log(minutes);
答案 1 :(得分:0)
我不喜欢为人们编写代码,但我今天感觉很好。
function parse12hToMin(timeStr){ //returns the minutes as an offset from 12:00 AM
let match12h = new RegExp(
"^" + // start of string
"(1[0-2]|[1-9])" + // hour
":" + // separator
"([0-5][0-9])" + // minutes
" " + // separator
"(am|pm)" // AM or PM
, 'i'); // case insensitive
let matched = timeStr.match(match12h);
let min = parseInt(matched[1]) * 60 // hours
+ parseInt(matched[2]) // minutes
+ (matched[3].toLowerCase() === "pm" ? 720 : 0); // 720 min PM offset
return min;
}
function minutesDiff12h(start, end){
return parse12hToMin(end) - parse12hToMin(start);
}
console.assert(minutesDiff12h("10:00 am","3:30 pm") === 330);

请始终尝试列出您尝试过的内容,并向我们展示不起作用的代码段。