使用jquery提取两次之间的总分钟数

时间:2017-10-18 16:08:29

标签: javascript jquery time

我有两次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);

2 个答案:

答案 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);




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