JS日期相減得到天數


廢話不多說直奔主題,解決思路核心是 時間戳相減
 靈感來自於我經常用到一個工具方法:格式化時間,也是用時間戳
function GetNumberOfDays(date1,date2){//獲得天數
    //date1:開始日期,date2結束日期
    var a1 = Date.parse(new Date(date1));
    var a2 = Date.parse(new Date(date2));
    var day = parseInt((a2-a1)/ (1000 * 60 * 60 * 24));//核心:時間戳相減,然后除以天數
    return day
};

var a1="12-19-2018";
var a2="2019/1/7";
var b=GetNumberOfDays(a1,a2)
console.log(b);

 

格式化時間是以前百度回來的,現在順便拿出來給大家看看借花獻佛:

/*
    該方法有效防止后台傳數據格式發生變化例如:10-19-2017《==》2017/10/19
    思路:后台的時間日期==》時間戳==》標准的時間日期
    y=年,m=月,d=天,h=時,u=分,s=秒
*/
//標准日期時間
function DateFormat(dateTime){//格式化時間
    var dateParse = Date.parse(new Date(dateTime));//轉成時間戳
    var time = new Date(dateParse);//再轉成標准時間
    var y = String(time.getFullYear());
    var m = String(time.getMonth()+1);
    var d = String(time.getDate());
    var h = String(time.getHours());
    var u = String(time.getMinutes());
    var s = String(time.getSeconds());
    return {y,m,d,h,u,s}
    //return m+"/"+d//直接輸入自己想要的格式
}
var a="2017/12/31  23:12:54";
console.log(DateFormat(a));

 

根據當天獲取某一天(分享點自己收藏的干貨):

function GetDay(day){
    function doHandleMonth(month){
      var m = month;
      if(month.toString().length == 1){
        m = "0" + month;
      }
      return m;
    };
    var today = new Date();
    var targetday_milliseconds=today.getTime() + 1000*60*60*24*day;
    today.setTime(targetday_milliseconds); //注意,這行是關鍵代碼
    var tYear = today.getFullYear();
    var tMonth = today.getMonth();
    var tDate = today.getDate();
    tMonth = doHandleMonth(tMonth + 1);
    tDate = doHandleMonth(tDate);
    return tYear+"-"+tMonth+"-"+tDate;
};
console.log(getDay(0))//當天
console.log(getDay(-7))//7天前
console.log(getDay(7))//7天后

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM