zoukankan      html  css  js  c++  java
  • 时间js

    function DateUtil(){ 
    this.url = ""; 
    this.op={ 
    partten:{mdy:"m/d/y",ymd:"y/m/d",dmy:"d/m/y"} 
    }; 
    this.cdate = new Date(); 
    } 
    
    DateUtil.prototype.updateDate=function(){ 
    this.cdate = new Date(); 
    }; 
    
    DateUtil.prototype.setTime=function(v){ 
    this.cdate.setTime(v); 
    }; 
    
    DateUtil.prototype.getYear=function(){ 
    return this.cdate.getFullYear(); 
    }; 
    DateUtil.prototype.getMonth=function(){ 
    return this.cdate.getMonth()+1; 
    }; 
    
    DateUtil.prototype.getDay=function(){ 
    return this.cdate.getDate(); 
    }; 
    
    DateUtil.prototype.getFirstDayOfMonth=function(d){ 
    var currentMonth = new Date(d.getTime())||new Date(); 
    currentMonth.setDate(1); 
    return currentMonth; 
    }; 
    
    DateUtil.prototype.getLastDayOfMonth=function(d){ 
    var nextMonth = new Date(d.getTime())||new Date(); 
    var month = nextMonth.getMonth(); 
    nextMonth.setMonth(month+1); 
    nextMonth.setDate(0); 
    return nextMonth; 
    }; 
    
    //对Date的扩展,将 Date 转化为指定格式的String 
    //月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
    //年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
    //例子: 
    //(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
    //(new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
    DateUtil.prototype.format = function (d,fmt) { //author: meizz 
    var o = { 
    "M+": d.getMonth() + 1, //月份 
    "d+": d.getDate(), //日 
    "h+": d.getHours(), //小时 
    "m+": d.getMinutes(), //分 
    "s+": d.getSeconds(), //秒 
    "q+": Math.floor((d.getMonth() + 3) / 3), //季度 
    "S": d.getMilliseconds() //毫秒 
    }; 
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length)); 
    for (var k in o) 
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); 
    return fmt; 
    }; 
    
    DateUtil.prototype.getHours=function(){ 
    return this.cdate.getHours(); 
    }; 
    DateUtil.prototype.getMinutes=function(){ 
    return this.cdate.getMinutes(); 
    }; 
    DateUtil.prototype.getSeconds=function(){ 
    return this.cdate.getSeconds(); 
    }; 
    
    DateUtil.prototype.getToday=function(){ 
    return this.format(this.cdate, "yyyy-MM-dd"); 
    }; 
    /** 
    * 计算出相差的时间后的日期 
    * @param d 日期 
    * @param s 相差的时间 
    * @param t 类型:day天, month月, year年, hour, minute, second 
    */ 
    DateUtil.prototype.getNewDate=function(d, s, t){ 
    if("year" == t){ 
    var year = d.getFullYear() + s; 
    var strDate = year+"/"+this.format(d, "MM/dd hh:mm:ss"); 
    return new Date(strDate); 
    }else if("month" == t){ 
    var year = d.getFullYear(); 
    var month = d.getMonth()+1 + s; 
    var strDate=""; 
    if (month==0) { 
    strDate = (year-1)+"/"+12+"/"+this.format(d, "dd hh:mm:ss"); 
    }else if (month>12) { 
    strDate = (year+1)+"/"+1+"/"+this.format(d, "dd hh:mm:ss"); 
    }else { 
    strDate = year+"/"+month+"/"+this.format(d, "dd hh:mm:ss"); 
    } 
    return new Date(strDate); 
    }else if("day" == t){ 
    var lt = d.getTime() + s*24*60*60*1000; 
    return new Date(lt); 
    }else if("hour" == t){ 
    var lt = d.getTime() + s*60*60*1000; 
    return new Date(lt); 
    }else if("minute" == t){ 
    var lt = d.getTime() + s*60*1000; 
    return new Date(lt); 
    }else if("second" == t){ 
    var lt = d.getTime() + s*1000; 
    return new Date(lt); 
    } 
    return d; 
    }; 
    
    DateUtil.prototype.parseDate=function(s){ 
    if(s != null && s != ""){ 
    try{ 
    if(typeof(s) == "string"){ 
    s = s.replace(/-/g, "/"); 
    return new Date(s); 
    }else if(typeof(s) == "number"){ 
    return new Date(s); 
    } 
    }catch(e){ 
    alert(e.message); 
    } 
    } 
    return null; 
    }; 
    
    DateUtil.prototype.getCurrentTimeString=function(){ 
    return this.getYear()+""+this.getMonth()+""+ 
    this.getDay()+""+this.getHours()+""+ 
    this.getMinutes()+""+this.getSeconds(); 
    }; 
    
    DateUtil.prototype.getWeek=function(date){ 
    var week = 0; 
    var df = "mmddyy"; 
    if(date==null || date =="" || typeof(date) == "undefined"){ 
    date = this.getToday(); 
    df = "yyMMdd"; 
    } 
    date = date.replace(///g,"-"); 
    week = $.ajax({ 
    type:"get", 
    url:basePath+"/dateUtil/week/"+encodeURIComponent(date)+"/"+df, 
    cache:false, 
    async:false, 
    dataType:"text" 
    }).responseText; 
    return week; 
    }; 
    
    DateUtil.prototype.getQuarter=function(date, format){ 
    var month = 0; 
    if(date && typeof(date) == "string" && date != "" && format && format != ""){ 
    var p = this.op.partten[format]; 
    var index = p.indexOf("m"); 
    var d = date.split("/"); 
    if(index == 0){ 
    month = parseInt(d[0],10); 
    }else{ 
    month = parseInt(d[1],10); 
    } 
    }else if(date && typeof(date) == "object"){ 
    month = date.getMonth(); 
    }else if(date && typeof(date) == "number"){ 
    month = date; 
    }else{ 
    month = this.getMonth(); 
    } 
    if(month % 3 == 0){ 
    return month / 3; 
    }else{ 
    return parseInt(month / 3 + 1); 
    } 
    }; 
    
    DateUtil.prototype.getQuarterByMonth = function(m){ 
    if(m % 3 == 0){ 
    return m / 3; 
    }else{ 
    return parseInt(m / 3 + 1); 
    } 
    }; 
    /** 
    * 若date为空,则返回当前日期是周几,否则数据类型为string,格式都为m/d/y 
    * @param date 
    * @returns 
    */ 
    DateUtil.prototype.getDayOfWeek=function(date){ 
    if(date && typeof(date) == "string"){ 
    var d = date.split("/"); 
    var md = new Date(parseInt(d[2]), parseInt(d[0]), parseInt(d[1])); 
    return md.getDay(); 
    }else{ 
    this.updateDate(); 
    return this.getDay(); 
    } 
    }; 
    /** 
    * 得到一个日期所在周的开始时间和结束时间,不传参数为当前周 
    * @param date 
    * @returns {___anonymous5423_5464} 
    */ 
    DateUtil.prototype.getStartAndEndDayOf=function(date, type){ 
    var today = date||new Date(); 
    var startDate = "", endDate = ""; 
    if(type == "day"){ 
    startDate = this.format(today, "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":startDate}; 
    }else if(type == "week"){ 
    var dayOfweek = today.getDay(); 
    var monday = new Date(today.getFullYear(), today.getMonth(), today.getDate()-dayOfweek+1); 
    var sunday = new Date(today.getFullYear(), monday.getMonth(), monday.getDate()+6); 
    startDate = this.format(monday, "yyyy-MM-dd"); 
    endDate = this.format(sunday, "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":endDate}; 
    }else if(type == "month"){ 
    var monday = this.getFirstDayOfMonth(today); 
    var sunday = this.getLastDayOfMonth(today); 
    startDate = this.format(monday, "yyyy-MM-dd"); 
    endDate = this.format(sunday, "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":endDate}; 
    }else if(type == "quarter"){ 
    var quarter = this.getQuarter(today, ""); 
    startDate = this.format(new Date(today.getFullYear(), quarter*3-3, 1), "yyyy-MM-dd"); 
    endDate = this.format(new Date(today.getFullYear(), quarter*3, 0), "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":endDate}; 
    }else if(type == "year"){ 
    startDate = today.getFullYear()+"-01-01"; 
    endDate = today.getFullYear()+"-12-31"; 
    return {"startDate":startDate, "endDate":endDate}; 
    }else{ 
    startDate = this.format(today, "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":startDate}; 
    } 
    }; 
    
    DateUtil.prototype.getPreDateForGapTime = function(date, type){ 
    var today = this.parseDate(date)||new Date(); 
    if(type.indexOf("pre") == 0){ 
    type = type.replace("pre",""); 
    var endDate = this.format(today, "yyyy-MM-dd"); 
    if(type.toLowerCase() == "day"){ 
    return {"startDate":endDate, "endDate":endDate}; 
    }else if(type.toLowerCase() == "week"){ 
    var startDate = this.format(this.getNewDate(today, -7, "day"), "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":endDate}; 
    }else if(type.toLowerCase() == "month"){ 
    var startDate = this.format(this.getNewDate(today, -1, "month"), "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":endDate}; 
    }else if(type.toLowerCase() == "quarter"){ 
    var startDate = this.format(this.getNewDate(today, -90, "day"), "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":endDate}; 
    }else if(type.toLowerCase() == "year"){ 
    var startDate = this.format(this.getNewDate(today, -1, "year"), "yyyy-MM-dd"); 
    return {"startDate":startDate, "endDate":endDate}; 
    }else{ 
    return {"startDate":endDate, "endDate":endDate}; 
    } 
    }else{ 
    return this.getStartAndEndDayOf(date, type); 
    } 
    }; 
    
    DateUtil.prototype.newgetPreDateForGapTime = function(date, type,i){ 
    var today = this.parseDate(date)||new Date(); 
    if(type.indexOf("pre") == 0){ 
    type = type.replace("pre",""); 
    if(type.toLowerCase() == "day" || type.toLowerCase() == "hour" || type.toLowerCase() == "minute"){ 
    var startDate = this.format(this.getNewDate(today, 1*i, "day"), "yyyy-MM-dd"); 
    var time=this.getStartAndEndDayOf(new Date(startDate), type.toLowerCase()); 
    return {"startDate":time.startDate, "endDate":time.endDate}; 
    }else if(type.toLowerCase() == "week"){ 
    var startDate = this.format(this.getNewDate(today, 7*i, "day"), "yyyy-MM-dd"); 
    var time=this.getStartAndEndDayOf(new Date(startDate), type.toLowerCase()); 
    return {"startDate":time.startDate, "endDate":time.endDate}; 
    }else if(type.toLowerCase() == "month"){ 
    var startDate = this.format(this.getNewDate(today, 1*i, "month"), "yyyy-MM-dd"); 
    var time=this.getStartAndEndDayOf(new Date(startDate), type.toLowerCase()); 
    return {"startDate":time.startDate, "endDate":time.endDate}; 
    }else if(type.toLowerCase() == "quarter"){ 
    var startDate = this.format(this.getNewDate(today, 90*i, "day"), "yyyy-MM-dd"); 
    var time=this.getStartAndEndDayOf(new Date(startDate), type.toLowerCase()); 
    return {"startDate":time.startDate, "endDate":time.endDate}; 
    }else if(type.toLowerCase() == "year"){ 
    var startDate = this.format(this.getNewDate(today, 1*i, "year"), "yyyy-MM-dd"); 
    var time=this.getStartAndEndDayOf(new Date(startDate), type.toLowerCase()); 
    return {"startDate":time.startDate, "endDate":time.endDate}; 
    }else{ 
    return {"startDate":endDate, "endDate":endDate}; 
    } 
    }else{ 
    return this.getStartAndEndDayOf(date, type); 
    } 
    }; 
    function isLeapYear(year) { 
        return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0); 
    } 
    /** 
    * 获取某一年份的某一月份的天数 
    * 
    * @param {Number} year 
    * @param {Number} month 
    */ 
    function getMonthDays(year, month) { 
        return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || (isLeapYear(year) ? 29 : 28); 
    } 
    /** 
    * 获取某年的某天是第几周 
    * @param {Number} y 
    * @param {Number} m 
    * @param {Number} d 
    * @returns {Number} 
    */ 
    function getWeekNumber(y, m, d) { 
        var now = new Date(y, m - 1, d), 
            year = now.getFullYear(), 
            month = now.getMonth(), 
            days = now.getDate(); 
        //那一天是那一年中的第多少天 
        for (var i = 0; i < month; i++) { 
            days += getMonthDays(year, i); 
        } 
    
        //那一年第一天是星期几 
        var yearFirstDay = new Date(year, 0, 1).getDay() || 7; 
    
        var week = null; 
        if (yearFirstDay == 1) { 
            week = Math.ceil(days / yearFirstDay); 
        } else { 
            days -= (7 - yearFirstDay + 1); 
            week = Math.ceil(days / 7) + 1; 
        } 
    
        return week; 
    } 
    
    var DUtil = new DateUtil();
    

      

  • 相关阅读:
    java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header.
    spring-session-data-redis依赖冲突问题
    centos7启动iptables时报Job for iptables.service failed because the control process exited with error cod
    图片上传后台服务报内存溢出 Out Of Memory Java heap space
    mysql 数据库密码忘记重置 进行远程连接
    打Jar包
    Type interface com.innovationV2.mapper.UserMapper is not known to the MapperRegistry
    关于java基础类型Integer String的clone()
    clion使用clang编译
    token & refresh token 机制总结
  • 原文地址:https://www.cnblogs.com/pureEve/p/6525620.html
Copyright © 2011-2022 走看看