2013-06-02 63 views
4

假設我有2個日期時間變量:JavaScript的AM/PM時間比較

var fromdt = "2013/05/29 12:30 PM"; 
var todt = "2013/05/29 01:30 AM"; 

我想比較這兩個日期時間。我如何通過Javascript來識別時間是AM還是PM?

我想Javascript會比較24小時格式的時間。我是否需要將時間轉換爲24小時格式?那是對的嗎?可能有人請提出正確的解決方案....

+1

看看在http:// momentjs.com/ – c0deNinja

+0

它們是24小時格式嗎? – JJJ

+0

沒有12小時格式....就像AM和PM – Dylan

回答

6

只需使用直JavaScript函數

var fromdt="2013/05/29 12:30 PM"; 
var todt="2013/05/29 01:30 AM"; 
var from = new Date(Date.parse(fromdt)); 
var to = new Date(Date.parse(todt)); 
alert(from); 
alert(to) 
if (from > to){ 
    alert("From"); 
}else{ 
    alert("To");  
} 

一旦日期被解析成日期格式,你可以做什麼你喜歡它。您可以使用標準操作符號(>,<等)比較日期。

我不確定您需要如何處理它們,但http://www.w3schools.com/jsref/jsref_obj_date.asp是可以參考的。

而且繼承人與上面的代碼http://jsfiddle.net/QpFcW/

和更好的一個XX刪除:(http://jsfiddle.net/QpFcW/1/

+0

datDate.parse(fromdt)是否從Datestring識別AM/PM? – Dylan

+0

當它將字符串解析爲日期對象時,它隱式地將am/pm特徵識別爲日期的一部分 – user1778606

+0

非常感謝您...簡單而乾淨的解決方案... – Dylan

0

使用此功能

  function get_time() { 

      var time_t = ""; 
      var d = new Date(); 
      var cur_hour = d.getHours(); 

      (cur_hour < 12) ? time_t = "am" : time_t = "pm"; 
      (cur_hour == 0) ? cur_hour = 12 : cur_hour = cur_hour; 
      (cur_hour > 12) ? cur_hour = cur_hour - 12 : cur_hour = cur_hour; 
      var curr_min = d.getMinutes().toString(); 
      var curr_sec = d.getSeconds().toString(); 
      if (curr_min.length == 1) { curr_min = "0" + curr_min; } 
      if (curr_sec.length == 1) { curr_sec = "0" + curr_sec; } 
      $('#updatedTime').html(cur_hour + ":" + curr_min + ":" + curr_sec + " " + time_t); 
      alert(cur_hour + ":" + curr_min + ":" + curr_sec + " " + time_t); 
     } 
0

試試這個蹩腳的沙箱..

var fromdt="2013/05/29 12:30 PM"; 
var todt="2013/05/29 01:30 AM"; 
var from = Date.parse(fromdt); 
var to = Date.parse(todt); 
alert(from); 
alert(to) 
if (from > to){ 
alert("From"); 
}else{ 
alert("To");  
}