前端中關於日期和時間的一些小方法

前段時間在做一個項目時總是需要獲取各種時間或日期,於是在此記錄一下這些用到的方法,方便以後需要時進行查閱。


1.獲取某月的天數

//輸入參數:年、月
function getMonthDays(nowYear,myMonth){
    var monthStartDate = new Date(nowYear,myMonth,1);
    var monthEndDate = new Date(nowYear,myMonth+1,1);
    var days = (monthEndDate-monthStartDate)/(1000*60*60*24);
    return days;
}

2.根據日期獲取當月的開始日期

//輸入參數:日期
function getMonthStartDate(dd){
    var nowYear = dd.getFullYear();
    nowYear += (nowYear < 2000)?1900:0;
    var nowMonth = dd.getMonth();
     
    var monthStartDate = new Date(nowYear,nowMonth,1);
    return monthStartDate;
}

3.根據日期獲取當月的結束日期

//輸入參數:日期
function getMonthEndDate(date){
    var nowYear = date.getFullYear();
    nowYear += (nowYear < 2000)?1900:0;
    var nowMonth = date.getMonth();
     
    var monthEndDate = new Date(nowYear,nowMonth,getMonthDays(nowYear,nowMonth));
    return monthEndDate;
}

4.根據日期獲取一週的日期範圍(週一至週日)

//輸入參數:日期
//輸出示例:'2019-03-04 2019-03-10'
function GetWeek(dd){
    var week = dd.getDay();
    var minus = week ? week-1:6;
    dd.setDate(dd.getDate()-minus);
    var yf = dd.getFullYear();
    var mf = dd.getMonth() + 1;
    var df = dd.getDate();
    dd.setDate(dd.getDate()+6);
    var yl = dd.getFullYear();
    var ml = dd.getMonth() + 1;
    var dl = dd.getDate();
    return yf + "-" + (mf>=10?mf:"0"+mf) + "-" + (df>=10?df:"0"+df) + " " + yl + "-" + (ml>=10?ml:"0"+ml) + "-" + (dl>=10?dl:"0"+dl);
}

5.日期轉字符串

//輸入參數:日期
function dateToStr(date){
    var yy = date.getFullYear();
    var mm = date.getMonth()+1;
    var dd = date.getDate();
    return yy + "-" + (mm>=10?mm:"0"+mm) + "-" + (dd>=10?dd:"0"+dd);
}

6.字符串轉日期

//輸入參數:字符串(格式爲'2019-03-04')
function strToDate(date){
    date = date.replace(/-/g,'-');
    return new Date(date);
}

7.時間戳轉字符串

//輸入參數:時間戳
function timestampToNewTime(timestamp){
    var date = new Date(timestamp);
    var Y = date.getFullYear();
    var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1);
    var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate());
    var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours());
    var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes());
    var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds());
    return Y+'-'+M+'-'+D+' '+h+':'+m+':'+s;
}

如後續有其他關於時間或日期的方法也會不定時向內添加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章