方法定義: gettime() 方法可返回距 1970 年 1 月 1 日之間的毫秒數。
通常我們計算時間差都是通過獲取兩個時間資料,然後分別使用gettime()方法返回與固定的1970 年 1 月 1 日的時間差,通過對返回毫秒數的差,換算成時間單位,得出兩個時間的時間差。
首先你會有一串初始的時間資料,然後通過 new date(你的時間資料),將你的資料轉成date物件的形式。
var t1="2017/08/28 04:56:38"; //資料
var datebegin = new date(t1);//轉化為date物件的形式
//mon aug 28 2017 04:56:38 gmt+0800 (中國標準時間) 這裡就是date物件的資料形式
這裡的話就要注意一下後端給的時間資料格式的問題,比如下面兩種:
第一種:"2017/08/28 04:56:38"//這種格式不用再進行處理
第二種:"2017-08-01 18:56:38"//這種格式就要進行處理
因為new date()方法不能處理第二種資料,所以我們這裡需要將第二種資料格式轉化為第一種資料的格式。
var t1="2017-05-12 00:13:53";
var datebegin = new date(d1.replace(/-/g, "/"));//replace方法將-轉為/
不知道大家是什麼情況,反正因為我們後端給我的資料就是第二種的,所以我會提一下這個東西(捂臉)。
另乙個時間資料:
既然是時間差的話,就肯定要有兩個資料,不然怎麼兩相比較,一般兩個資料中都會有乙個當前時間的資料。
var dateend = new date();//當前時間資料
先獲取之間的毫秒差,通過毫秒差換算出你所需要的時間單位,然後時間單位之間的換算根據的是他們的倍數關係。
function timefn(d1)
var t3="2017-08-18 04:56:38";
timefn(t3);
//這裡的daydiff就是上文計算出的天數差
let monthdiff=math.floor(daydiff/30);//以30天為乙個月不夠精準嚴謹
//獲取相差的月份
if (monthdiff<12)
let yeardiff=math.floor(monthdiff/12);//獲取相差的年份
if(yeardiff>=1)
當天數相差較大的時候,單純計算天數已經不能滿足需求了,因為我們pm說的統一以30天為乙個月的分界線,然後這裡月份的計算情況感覺很複雜的樣子沒有繼續研究下去。
function getdays()
else if (mouth == 1 || mouth == 3 || mouth == 5 || mouth == 7 || mouth == 8 || mouth == 10 || mouth == 12)
else
return days;
}
js 時間處理相關方法
獲取本週 本季度 本月 上月的開端日期 停止日期 var now new date 當前日期 var nowdayofweek now.getday 今天本週的第幾天 var nowday now.getdate 當前日 var nowmonth now.getmonth 當前月 var nowye...
js處理時間data相關記錄
毫秒值轉字串 this.validmodeparamms 為毫秒值 var newdate newdate this validmodeparamms 得到普通的時間了 console.log newdate var time newdate newdate console.log time 當前時...
js 時間處理
var mydate new date mydate.getyear 當前年份 2位 mydate.getfullyear 獲取完整的年份 4位,1970 mydate.getmonth 獲取當前月份 0 11,0代表1月 mydate.getdate 獲取當前日 1 31 mydate.getda...