2015-05-18 117 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,對不起。 –

相關問題