jQuery:如何区分12小时格式的时间和24小时格式的时间差异

时间:2015-05-18 02:11:10

标签: jquery

我是jQuery的新手,我真的不知道如何获得这个。我想得到12小时格式的结果与12小时格式的时间和24小时格式的时间之间的差异。示例:给定时间“1:30:25 AM”并将其减去“00:32:20”,结果应为“12:58:05 AM”。请帮我搞定。

2 个答案:

答案 0 :(得分:1)

以24小时格式生成

var dt = '1/1/2000 ';
var date = new Date(new Date(dt + '1:30:25 AM') - new Date(dt + '00:32:20'));
alert("24-hr format: " + date.toISOString().substr(11, 8));

结果:00:58:05

结果为12小时格式

function timeFormat12Hr(date) {
    var hours = date.getUTCHours();
    var minutes = date.getUTCMinutes();
    var seconds = date.getUTCSeconds();
    var ampm = hours >= 12 ? 'PM' : 'AM';
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    minutes = minutes < 10 ? '0' + minutes : minutes;
    seconds = seconds < 10 ? '0' + seconds : seconds;
    var strTime = hours + ':' + minutes + ':' + seconds + ' ' + ampm;
    return strTime;
}

var dt = '1/1/2000 ';
var date = new Date(new Date(dt + '1:30:25 AM') - new Date(dt + '00:32:20'));
alert("12-hr format: " + timeFormat12Hr(date));

结果:12:58:05 AM

注意:我正在使用字符串'1/1/2000 '来构造Date对象,但它可以是任何日期,因为我们只对它的时间部分感兴趣。

请参阅this JSFiddle进行演示。

答案 1 :(得分:0)

一些简单的javascript应该可以胜任。一旦有了日期对象,就可以以任何你想要的格式输出它。

var year = 2015; var month = 5, var day = 18, var hours = 1; minutes = 30; seconds = 25;
var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);
var new_format = (date->getHours()+1)+'-'+date->getMinutes();

日期返回0-23,所以你必须加+1(这就是为什么我倾向于支持moment.js,如下所述)

http://www.w3schools.com/jsref/jsref_obj_date.asp(对于其他创建日期对象的方法)

否则可能会尝试一下moment.js,这对于日期/时间计算来说非常棒。

http://momentjs.com/