Js計算間隔天數和Date對象

一、工做裏遇到了計算兩個日期的間隔天數問題,這個問題比較簡單,只須要按照輸入的日期,分別取出年月日,用new Date(year, month, date)的方法建立Date對象,直接對Date對象進行運算,能夠獲得兩日期的間隔毫秒數,對之進行換算就能夠獲得天數了。spa

  具體代碼:code

1 function showDays() {
2         var start_day = document.getElementById("date1").value.split("-");//起始日期
3         var end_day = document.getElementById("date2").value.split("-");//結束日期
4         console.log(start_day + " to " + end_day);
5         var start_obj = new Date(start_day[0], start_day[1] - 1, start_day[2]);//月份是從0開始計算,因此這裏須要減一
6         var end_obj = new Date(end_day[0], end_day[1] - 1, end_day[2]);
7         console.log(start_obj + " to " + end_obj);
8         console.log((end_obj - start_obj) / (1000 * 3600 * 24));
9 }

二、藉此機會總結一下Date對象的特性和相關方法對象

  1) Date對象的定義:blog

1 var date1 = new Date();//根據當前時間建立Date對象
2 var date2 = new Date(dateVal);//根據給定的毫秒數,從1970年1月1日開始計算日期,建立Date對象
3 var date3 = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]);//根據給定的時間建立Date對象

  要知道,Date對象存放時間的度量是毫秒,方式是以從1970年1月1日開始計算的毫秒數來表示特定的時間。字符串

  要注意用給定的時間來建立時間對象時,Date對象在月份的表示上是從0~11,因此要對月份減一。get

  2) Date對象的靜態方法:it

  Date.parse():解析一個日期時間字符串,並返回1970/1/1午夜距離該日期時間的毫秒數。io

  Date.UTC():根據世界時返回1970年1月1日到指定日期的毫秒數,參數是按照指定格式的日期和時間。console

  簡單的說,Date.perse()對於時間的解析和本地設置的時區有關,並且支持參數中出現月份的英文縮寫和星期幾的英文縮寫,實際上,在調用Date()對象的構造方法時,會在後臺先調用Date.parse()來解析傳入的參數,也是說下面的代碼是等價的:function

1 var date1 = new Date("Oct, 12, 2015");
2 var date2 = new Date(Date.parse("Oct, 12, 2015"));

  而Date.TUC()也是返回毫秒數,可是Date.TUC()使用的參數不同,Date.UTC()的參數分別是年份、從0開始算的月份(0到11)、日期(1到31)、小時數(0到23)、分鐘、秒以及毫秒數,其中只有年和月是必須的。沒有提供日期時,默認爲1,其餘的的參數沒有提供時都默認爲0。

  3) Date對象的經常使用方法

  比較經常使用的好比getDate(),getDay(),getMonth(),getFullYear()等等,須要注意的是月份和星期幾都是從0開始的。

相關文章
相關標籤/搜索