如何从javascript或jquery中的时间字符串中获取分钟数

时间:2015-02-12 12:19:10

标签: javascript jquery time

如何从javascript或jquery中的时间字符串中获取分钟数?

例如:如果我的输入时间是" 12:30 am"然后我的输出应该是750分钟。

6 个答案:

答案 0 :(得分:3)

试试这个:

var time="12:30 am";
var timeArray = time.split(" ");
timeArray = timeArray[0].split(":");
alert(parseInt(timeArray[0])*60+parseInt(timeArray[1]));

答案 1 :(得分:2)

http://jsfiddle.net/32ecwdwh/

var time="12:30 pm";
var hr,min;
time = time.split(" ");
if(time[1]==='am'){
  time = time[0].split(":");
  hr= parseInt(time[0])-12;
  var min= parseInt(time[1]);
}
else{
  time = time[0].split(":");
  hr= parseInt(time[0]);
  min= parseInt(time[1]);
}
var date= new Date();
date.setHours(hr);
date.setMinutes(min);
alert(date.getHours()*60 + date.getMinutes());

答案 2 :(得分:0)

试试这个,

var t='12:30 am';
var pat= /\d+/g;
var arr=(t.match(pat));
if(arr[0] && arr[1]){
   alert(parseInt(arr[0]*60) + parseInt(arr[1]));
}

var t='12:30 am';
var pat= /\d+/g;
var arr=(t.match(pat));
if(arr[0] && arr[1]){
  alert(parseInt(arr[0]*60) + parseInt(arr[1]));
}

答案 3 :(得分:0)

具有正则表达式的函数:

function my_timestringToMin(input){
    input = input.match(/^(\d+)[:\.](\d+) ?(am|pm)?$/i);
    /* Convert input to array: [input, hours, minutes, am/pm/undefined] */

    var output = parseInt(input[2]); // minutes
        output += parseInt(input[1] * 60); // add hours * 60

    if(input[1] < 12 && input[3] == "pm") 
        output += 12*60; // if PM, add 12h

    return output;
}

$("#submit").click(function(){$("#result").html(my_timestringToMin($("#input").val()).toString());});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><input type="text" id="input" value="12:30 am"><input id="submit" type="submit" value="calculate"></div>
<div>Result: <span id="result">750</span> min</div>

特点:

  • 使用0小时:“凌晨1:00”=“01:00 am”
  • 上午/下午是可选的:“13:00”=“下午1:00”
  • 小时和上午/下午之间的空格是可选的:“00:00 am”=“00:00 am”
  • 忽略PM超过11小时:“13:00 pm”=“13:00”(使用24小时时钟的人的直观常见错误解决方案)
  • 不区分大小写:“12:30 am”=“12:30 AM”
  • 识别点和冒号:“12:30 am”=“12.30 am”

答案 4 :(得分:0)

首先,我可以说这不是一种正确的方式。

我们怎么说12.30 am是750分钟?我认为下午12点30分是750分钟,上午12点30分是30分钟,

无论如何,按照你的问题,你可以做下面的事情,它会给你的结果提供你想要的结果

   var time="12:30 am"
   var time = time.split(" ");

    time = time[0].split(":");
    alert(parseInt(time[0])*60+parseInt(time[1]));

<强> DEMO

答案 5 :(得分:0)

如果您使用新日期(年,月,日,小时,分钟,秒,毫秒)创建日期; *您可以使用d.getHours();和d.getMinutes(); **

EG:

&#13;
&#13;
var date = new Date(2015, 2, 11, 12, 30, 00);
var hours = date.getHours();
var minutes = date.getMinutes();
var totalMinutes = hours * 60 + date.getMinutes();
$('#time-in-minutes').html(totalMinutes);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="time-in-minutes"/>
&#13;
&#13;
&#13;

* http://www.w3schools.com/jsref/jsref_obj_date.asp ** http://www.w3schools.com/jsref/jsref_getminutes.asp