前段時間在做一個項目時總是需要獲取各種時間或日期,於是在此記錄一下這些用到的方法,方便以後需要時進行查閱。
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;
}
如後續有其他關於時間或日期的方法也會不定時向內添加。