2011-04-11 107 views
1

我有一個標記爲'時間'的文本框,它接受12小時或24小時時間並將其轉換爲12小時格式,即(hh:mma)格式。以15分鐘爲增量格式的時間間隔

我的要求是現在將時間轉換爲15分鐘的增量格式。

對於例如:

如果用戶輸入01:自動15A:10a中,它應該被轉換成01。

特殊情況是:

如果用戶輸入11:53A,它應該被轉換成12:00P(這裏通知AM/PM值的變化)

如果用戶輸入11:53P,它應該被轉換到12:00a(通知am/pm值在這裏變化)

這需要在javascript函數中完成。

請建議我應該使用什麼邏輯來進行此轉換。

回答

2

您可以正確使用日期處理60分鐘的事實來完成此操作。

var parts, d, s = '11:55pm'; 
if (parts = /(\d+):(\d+)(\w+)?/.exec(s)) { 
    // date is good 
    d = new Date(); 
    if (parts[3] == undefined) { 
     // 24 hr 
     d.setHours(parseInt(parts[1])); 
    } else { 
     d.setHours(parseInt(parts[1]) + ((parts[3].indexOf('a') >= 0) ? 0 : 12)); 
    } 
    // if this is 60, wraps hours... 
    d.setMinutes(Math.round(parseInt(parts[2])/15)*15); 
    alert(d.toString()); 
} 

最後,根據需要用the functions here和格式只是訪問d

+0

注意:這可以正確處理12與24小時以及格式檢查。 – Sajid 2011-04-11 04:32:03

+0

感謝您的幫助:) – gin 2011-04-11 08:09:11

+0

@gin:不客氣。如果這是完整的答案,請將問題標記爲已回答,以便線程關閉。 – Sajid 2011-04-11 19:50:27

相關問題