zoukankan      html  css  js  c++  java
  • JavaScript时间工具类

    /**
     * JavaScript日期工具类
     * @author ZhangLp
     */
    
    /**
     * 获取当前月的第一天
     */
    function getCurrentMonthFirst(){
     var date=new Date();
     date.setDate(1);
     return date;
    }
    /**
     * 获取当前月的最后一天
     */
    function getCurrentMonthLast(){
     var date=new Date();
     var currentMonth=date.getMonth();
     var nextMonth=++currentMonth;
     var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
     var oneDay=1000*60*60*24;
     return new Date(nextMonthFirstDay-oneDay);
    }
    /**
     * 获取上个月的第一天
     */
    function lastMonthFirst(){
        return new Date(getCurrentMonthFirst().setMonth(getCurrentMonthFirst().getMonth()-1));
    }
    /**
     * 获取上个月最后一天
     * @return
     */
    function lastMonthLast(){
        return new Date(getCurrentMonthFirst().setDate(getCurrentMonthFirst().getDate()-1));
    }
    /**
     * 获取上上个月的第一天
     */
    function lastLastMonthFirst(){
        return new Date(lastMonthFirst().setMonth(lastMonthFirst().getMonth()-1));
    }
    /**
     * 获取上上个月最后一天
     * @return
     */
    function lastLastMonthLast(){
        return new Date(lastMonthFirst().setDate(lastMonthFirst().getDate()-1));
    }
    /**
     * 上N个月的第一天(N为变量)
     * 获取当前月之前倒退到第n个月的第一天(例如现在是10月12号,n=2,beforeNMonthFirst(2)意思是获取上上个月的第一天)
     */
    function beforeNMonthFirst(N){
        var forCurrMonthFirst = getCurrentMonthFirst();
        for(var i=0;i<N;i++){
            forCurrMonthFirst=new Date(forCurrMonthFirst.setMonth(forCurrMonthFirst.getMonth()-1));
        }
        return forCurrMonthFirst;
    }
    /**
     * 上N个月的最后一天(N为变量)
     * 获取当前月之前倒退到第n个月的最后一天(例如现在是10月12号,n=2,beforeNMonthFirst(2)意思是获取上上个月的最后一天)
     * @return
     */
    function beforeNMonthLast(N){
        //获取n-1个月前的第一天
        var M = parseInt(N - 1);
        var forCurrMonthFirst = getCurrentMonthFirst();
        for(var i=0;i<M;i++){
            forCurrMonthFirst=new Date(forCurrMonthFirst.setMonth(forCurrMonthFirst.getMonth()-1));
        }
        return  new Date(forCurrMonthFirst.setDate(forCurrMonthFirst.getDate()-1));;
    }
    /**
     * @description 对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  
     * @param fmt
     * @return
     */ 
    Date.prototype.Format = function(fmt) { //author: meizz   
        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(fmt))
            fmt = fmt.replace(RegExp.$1, (this.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;
    }
    /**
     * 获取前X天或者后X天
     * @param AddDayCount 
     * @demo 今天:GetDateStr(0)    明天:GetDateStr(1)  昨天:GetDateStr(-1)  其它的以此类推
     */
    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();
        return y+"-"+m+"-"+d;
    }
    

    //计算月份差
      function getMonthNumber(date1,date2){
      //默认格式为"20030303",根据自己需要改格式和方法
      var year1 =  date1.substr(0,4);
      var year2 =  date2.substr(0,4); 
      var month1 = date1.substr(4,2);
      var month2 = date2.substr(4,2);
      
      var len=(year2-year1)*12+(month2-month1);
      
      return len;

    
    

     }

    
    

    var len=getMonthNumber('200403','200504');

    
    

    //alert('2003-03-03'.replace(/-/g, "/"));

    
    

    //alert('2003-03-03'.replace(/-/g, ""));

    if(len<0){
      alert("查询起始月份不能比查询终止月份大.");
     }else if(len >11){  
       alert("查询月份时间段不能超过12个月.");

    
    

     }

    //计算天数差
      function getDayNumber(date1,date2){
      //默认格式为"20030303",根据自己需要改格式和方法
      var year1 =  date1.substr(0,4);
      var year2 =  date2.substr(0,4); 
      var month1 = date1.substr(4,2);
      var month2 = date2.substr(4,2);
      
      var day1 = date1.substr(6,2);
      var day2 = date2.substr(6,2);
      
      temp1 = year1+"/"+month1+"/"+day1;
      temp2 = year2+"/"+month2+"/"+day2;
      
      var dateaa= new Date(temp1); 
      var datebb = new Date(temp2); 
      var date = datebb.getTime() - dateaa.getTime(); 
      var time = Math.floor(date / (1000 * 60 * 60 * 24));
      alert(time);

     }

    getDayNumber('20030303','20040503');


    //。。。持续补充更新中。。。
  • 相关阅读:
    通过16道练习学习Linq和Lambda
    sql server 2000,一个数据库最多能建多少张表,每张表最多能建多少个字段?
    通过EPPlus导出Excel文件
    SQLServer找出执行慢的SQL语句
    C# where用法
    双击桌面Internet Explorer图标时创建快捷方式
    xxxx.accessor: The reference to 'xxxx' was not found in the list of this projects references
    .NET设计模式(3): 抽象工厂模式
    关于Windows Installer的一些知识点
    详细介绍"使用DB Attach的方式来升级MOSS2007中SSP的user profile和mysite至SharePoint 2010"的文章
  • 原文地址:https://www.cnblogs.com/dreamzhiya/p/5054827.html
Copyright © 2011-2022 走看看