javascript比較兩個時間日期的大小

antzone發表於2017-03-21

在實際應用中可能需要比較兩個時間日期的大小,比如確定一個日期是否已經過期,當然還有其他應用,這裡就不舉例了,下面就通過程式碼例項介紹一下如何實現此功能,程式碼如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>螞蟻部落</title> 
<script type="text/javascript">
function compareDate(startTime,endTime){
  var dateStart = new Date(startTime.replace(/\-/g, "\/"));
  var dateEnd = new Date(endTime.replace(/\-/g, "\/"));
  return dateStart-dateEnd;
}
function doCompare(){
  var dateStart = document.getElementById("start").value;
  var dateEnd = document.getElementById("end").value;
  var result = compareDate(dateStart,dateEnd);
  if ( result>0 ) {
    alert("dateStart晚於dateEnd");
  }
  else if( result<0 ){
    alert("dateStart早於dateEnd");
  }
  else if ( result==0 ){
    alert("dateStart等於dateEnd");
  }
}
window.onload=function(){
  var obt=document.getElementById("compareBtn");
  obt.onclick=function(){
    doCompare();
  }
}
</script>
</head>
<body>
<input type="text" id="start" name="start" value="2014-07-01"/>
<input type="text" id="end" name="end" value="2014-08-01"/>
<input type="button" id="compareBtn" value="檢視效果"/>
</body>
</html>

以上程式碼實現了我們的要求,下面簡單介紹一下次效果的實現過程。

一.程式碼註釋:

1.function compareDate(startTime,endTime){},第一個引數是起始日期,第二個是終止日期。

2.var dateStart = new Date(startTime.replace(/\-/g, "\/")),將2014-10-1這種形式轉換為2014/10/1這種形式,此種形式作為Date()建構函式的引數能夠相容所有瀏覽器。

3.return dateStart-dateEnd,返回一個大於零、等於零或者小於零的值,用於說明兩個日期之間的大小,這裡需要特別注意的是,dateStart和dateEndDate物件例項,這裡之所以能夠進行算術運算,是因為在表示式中,它們兩個隱士呼叫valueOf()函式將其轉換為時間戳,然後再進行比較。

二.相關閱讀:

1.replace()函式可以參閱正規表示式replace()函式一章節。 

2.Date()建構函式引數可以參閱javascript Date()一章節。 

3.時間戳可以參閱javascript getTime()一章節。

相關文章