2015-05-18 39 views

回答

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示范。

+0

gyrocode.com有没有一种方法可以在计算机时钟以外的jquery中创建不同的时钟?这是没有互联网连接。我之所以要这样做的原因是我不想在计算机中使用时钟,因为我认为它不可靠,因为您可以调整计算机上的时间吗?原因是我想使用时间之后记录特定事件正好3天,我想有一个剩余的东西,会说3天已经失效,因为我保存了数据.. –

+0

@HRRider,这似乎是与原始问题无关,请开始一个新的获得更多的关注,我会看看我能否帮忙。 –

+0

@ Gyrocode.com,我不知道为什么,但当我尝试更改给定dt =“5/18/2015”,时间在12小时格式=“1:25:52 PM”和时间在24小时格式=“00:00:03”,结果是“12:NaN:NaN AM” –

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/

+0

'date-> format('h:i:s a')'看起来不像JavaScript,请解释一下吗? –

+0

嗯,你让我在那里。我似乎在混合PHP和JavaScript日期对象。我认为选择格式的最佳实践方式是使用date-> getHours()+' - '+'date-> getMinutes()等。我将更新我的答案。 –

+0

这也不是有效的JavaScript,对不起。 –

相关问题