工作中常用的日期方法总结

时间:2022-10-06 20:37:56
  • 时间常用方法
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
  • 初始化日期为当前日期的下一个月
function getNextMonth(){
    var date=new Date();
    var y=date.getFullYear();
    var m=date.getMonth()+1;
    var _date;
    m=m+1;
    if(m<10){
        m="0"+m;
        _date=y+"-"+m;
    }else if(m>9&&m<=12){
        _date=y+"-"+m;
    }else if(m>12){
        y=y+1;
        _date=y+"-"+"01";
    }
    return _date;
}
  • 设置日期为某一天
function GetDateStr(AddDayCount) {
    var dd = new Date();
    dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
    var y = dd.getFullYear();
    var m = dd.getMonth()+1;//获取当前月份的日期
    var d = dd.getDate();
    if(m<10){
        m="0"+m;
    }
    if(d<10){
        d="0"+d;
    }
    return y+"-"+m+"-"+d;
}
//获取当天
GetDateStr(0);
//获取前天
GetDateStr(-1);
//后天
GetDateStr(1);
  • 获取两个日期差 
function getDays(strDateStart,strDateEnd){
   var strSeparator = "-";
   var oDate1;
   var oDate2;
   var iDays;
   oDate1= strDateStart.split(strSeparator);
   oDate2= strDateEnd.split(strSeparator);
   var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
   var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
   iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24)  //把相差的毫秒数转换为天数 
   return iDays ;
}
  • 根据年月计算天数
function getDayCount(year,month){
    month = parseInt(month,10); //parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制。 
    var temp = new Date(year,month,0); 
    return temp.getDate(); 
}
  • 计算时间差
function datediff(strInterval,dtStart,dtEnd) {   
     if (typeof dtStart=='string'){dtStart = StringToDate(dtStart);}
     if (typeof dtEnd=='string'){dtEnd = StringToDate(dtEnd);}
     switch (strInterval) {   
         case 's' :return parseInt((dtEnd - dtStart) / 1000);  
         case 'n' :return parseInt((dtEnd - dtStart) / 60000);  
         case 'h' :return parseInt((dtEnd - dtStart) / 3600000);  
         case 'd' :return parseInt((dtEnd - dtStart) / 86400000);  
         case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));  
         case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);  
         case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();  
     }  
 } 
  
  //用法

var endTime = new Date();
var seconds = datediff("s",startTime,endTime);
var minutes = 0;
var hours = 0;
if(seconds>60){
minutes = parseInt(seconds/60);
seconds = seconds%60;
if(minutes>60){
hours = parseInt(minutes/60);
minutes = minutes%60;
}
}

$("#useTime").html(hours+"时"+minutes+"分"+seconds+"秒");

  • 日期格式化方法
Date.prototype.format = function(format){ 
    var o = {  
        "M+" : this.getMonth() + 1,  
        "d+" : this.getDate(),  
        "h+" : this.getHours(),  
        "m+" : this.getMinutes(),  
        "s+" : this.getSeconds(),  
        "q+" : Math.floor((this.getMonth() + 3) / 3),  
        "S" : this.getMilliseconds()  
    }    
    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 startTime="2015-02-03";
    new Date(startTime)).format('yyyy-MM-dd hh:mm')
  • 取时间到分钟
new Date(_onlineTime.replace(/-/g,"/")).format('yyyy-MM-dd hh:mm');