获取时间
Date.prototype.Format = function(format){
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
}
}
return format;
}
使用方法
var now=(new Date()).Format("yyyy-MM-dd hh:mm:ss");//当前日期
console.log((new Date()).Format("yyyy-MM-dd hh:mm:ss"));//2018-01-22 12:00:00
console.log((new Date()).Format("yyyy-MM-dd hh:mm")); //2018-01-22 12:00
console.log((new Date()).Format("yyyy-MM-dd hh")); //2018-01-22 12
console.log((new Date()).Format("yyyy-MM-dd")); //2018-01-22
console.log((new Date()).Format("yyyy-MM")); //2018-01
console.log((new Date()).Format("yyyy")); //2018
处理时间
Date.prototype.DateAdd = function(interval,number){
number = parseInt(number);
var date = new Date(this.getTime());
//
switch(interval){
case "y": date.setFullYear(this.getFullYear()+number); break;
case "m": date.setMonth(this.getMonth()+number); break;
case "d": date.setDate(this.getDate()+number); break;
case "w": date.setDate(this.getDate()+7*number); break;
case "h": date.setHours(this.getHours()+number); break;
case "n": date.setMinutes(this.getMinutes()+number); break;
case "s": date.setSeconds(this.getSeconds()+number); break;
case "l": date.setMilliseconds(this.getMilliseconds()+number); break;
}
return date;
}
使用方法
根据我们想要修改的时间单位,只需要在DateAdd("","")
里修改相应配置就可以了
//"d","m","y" 分别为日,月,年 "-1"为在当前日期基础上倒流一个单位
console.log(new Date().DateAdd('d',-1).Format('yyyy-MM-dd hh:mm:ss'));//今天前一天(昨天)
console.log(new Date().DateAdd('m',-1).Format('yyyy-MM-dd hh:mm:ss'));//本月上个月(如本月为1月,上个月就是上年的12月)
console.log(new Date().DateAdd('y',-1).Format('yyyy-MM-dd hh:mm:ss'));//今年前一年(去年)
计算当前日期在本月为第几周
// 计算当前日期在本月份的周数
Date.prototype.getWeekOfMonth = function(weekStart) {
weekStart = (weekStart || 0) - 0;
if(isNaN(weekStart) || weekStart > 6)
weekStart = 0;
var dayOfWeek = this.getDay();
var day = this.getDate();
return Math.ceil((day - dayOfWeek - 1) / 7) + ((dayOfWeek >= weekStart) ? 1 : 0);
}
使用方法
var MonthWeek=(new Date()).getWeekOfMonth();
console.log(MonthWeek);//返回值为第几周
计算当前日期在本年度的周数
Date.prototype.getWeekOfYear = function(weekStart) { // weekStart:每周开始于周几:周日:0,周一:1,周二:2 ...,默认为周日
weekStart = (weekStart || 0) - 0;
if(isNaN(weekStart) || weekStart > 6)
weekStart = 0;
var year = this.getFullYear();
var firstDay = new Date(year, 0, 1);
var firstWeekDays = 7 - firstDay.getDay() + weekStart;
var dayOfYear = (((new Date(year, this.getMonth(), this.getDate())) - firstDay) / (24 * 3600 * 1000)) + 1;
return Math.ceil((dayOfYear - firstWeekDays) / 7) + 1;
}
使用方法
var YearWeek=(new Date()).getWeekOfYear();
console.log(YearWeek);//返回值为本年度的周数
自己整理的一些常用日期
var now=new Date();////////////当前时间
var day=now.getDay();//周几 1 、2、3、4、5、6、0
//当周日时,getDay()会返回0,此时将day=7;
if(day==0){
var day=7;
}
//本周起始日期
var week=new Date().DateAdd('d',-(day-1)).Format('yyyy-MM-dd 00:00:00');
//本周日期
var weekDay=[];
var j=0;
for(var i=1;i<8;i++){
weekDay[j]=new Date().DateAdd('d',-(day-i)).Format('MM-dd');
j++;
}
//上周一
var sweek1=new Date().DateAdd('d',-(day+6)).Format('yyyy-MM-dd 00:00:00');
//上周日
var sweek7=new Date().DateAdd('d',-(day)).Format('yyyy-MM-dd 00:00:00');
//当前是该月第几周
var totalWeek=now.getWeekOfMonth();
//当前月在该年是第几个月
var totalMonth=now.getMonth();
//本月几号
var nowday=(new Date()).Format("d");
//当月第一天
var monthfristday=new Date().DateAdd('d',-(nowday-1)).Format('yyyy-MM-dd 00:00:00');
//本年第一天
var firstDay = new Date(now.getFullYear(),0,1);
//计算当前时间与本年第一天的时差(返回一串数值,代表两个日期相差的毫秒数)
var dateDiff = now - firstDay;
var msPerDay = 1000 * 60 * 60 * 24; //一天的毫秒数
var diffDays = Math.ceil(dateDiff/ msPerDay);//当前时间与本年第一天的天数