前段时间在做一个项目时总是需要获取各种时间或日期,于是在此记录一下这些用到的方法,方便以后需要时进行查阅。
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;
}
如后续有其他关于时间或日期的方法也会不定时向内添加。