天天看點

JS 時間與時間戳轉換(詳解)

判斷一個變量是否是日期格式

var aa =new Date();
    if(aa.constructor==Date){
        alert("!");
    }           

擷取時間

1)new Date( ); (目前時間)

2)new Date(“month dd,yyyy hh:mm:ss”); (以字元串形式建立日期對象)

例:var aa =new Date(“Jan 2,2008 19:41:40”);

var aa=new Date(“2008-1-2 19:41:40”);

可以隻寫年月日

3)new Date(yyyy,mth,dd,hh,mm,ss); (年月日 必選,時分秒毫秒 選填)

擷取、設定時間對象中的年、月、日

var myDate = new Date();
          myDate.getYear();        //擷取目前年份(2位)
          myDate.getFullYear();    //擷取完整的年份(4位,1970-????)
          myDate.getMonth();      //擷取目前月份(0-11,0代表1月)
          myDate.getDate();        //擷取目前日(1-31)
          myDate.getDay();        //擷取目前星期X(0-6,0代表星期天)
          myDate.getTime();        //擷取目前時間(從1970.1.1開始的毫秒數)
          myDate.getHours();      //擷取目前小時數(0-23)           

set同理

unix時間戳

unix時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數
           

時間轉毫秒

parse()

可解析時間格式的字元串,時間。傳回一個毫秒數(指定的日期和時間據 1970/1/1 午夜(GMT 時間)之間的毫秒數。)

精準到秒,毫秒為000

Date.parse() 是 Date 對象的靜态方法。
var v = Date.parse("Jul 8, 2005");
var b = Date.parse("2017-04-18 09:16:15");
var aa =new Date();
d.innerHTML = Date.parse(aa);           

getTime() 傳回一個時間戳(指定的日期和時間據 1970/1/1 午夜(GMT 時間)之間的毫秒數。)

var aa =new Date();
c.innerHTML = aa.getTime();
var timestamp = (new Date()).valueOf();              

作用同getTime() 可判斷毫秒

getTime比pares精準,parse到秒,gettime到毫秒

時間戳轉時間 (時間格式字元串)

//時間戳轉時間   格式字元串
function fmtDate(obj){ 
​
var date = new Date(obj);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d +' '+h+':'+minute+':'+second;
​
};           

比較兩個時間相差幾天、小時、分

function DateMin(sDate1, sDate2) { //sDate1和sDate2是yyyy-MM-dd格式
​
        var dateSpan,
            tempDate,
            iDays;
        sDate1 = Date.parse(sDate1);
        sDate2 = Date.parse(sDate2);
        dateSpan = sDate2 - sDate1;
        dateSpan = Math.abs(dateSpan);
        iDays = Math.floor(dateSpan / (3600 * 1000));//自己改成天、小時、分
        return iDays
    }           

比較兩個時間大小

1)換成毫秒比較

獲得一個日期幾天後或者幾天前的日期(小時,分)

var newdate = new Date(); 
    var num =1;
    var endtime = newdate.getTime() + (num * 24 * 60 * 60 * 1000);  
//時間戳格式。
  var d=new Date(date); 
  d.setDate(d.getDate()+days); //時間、分鐘同理