• 日期操作类


    1.Date对象的方法:

      Date()  返回当日的日期和时间
        getDate()   从Date对象返回一个月中的某一天(1-31)
        getDay()    从Date对象返回一周中的某一天(0-6)
        getMonth()  从Date对象返回月份(0-11)
        getFullYear()   从Date对象以四位数字返回年份
        getHours()  返回Date对象的小时(0-23)
        getMinutes()    返回Date对象的分钟(0-59)
        getSeconds()    返回Date对象的秒数(0-59)
        getMilliSecond()    返回Date对象的毫秒数(0-999)
        getTime()   返回从1970年1月1日至今的毫秒数
        setDate()   设置Date对象中的某一天(1-31)
        setMonth()  设置Date对象的月份(0-11)
        setFullYear()   设置Date对象的年份
        setHourse() 设置Date对象的小时(0-23)
        setMinutes()    设置Date对象的分钟(0-59)
        setSeconds()    设置Date对象的秒数(0-59)
        setMilliSeconds()   设置Date对象的毫秒数(0-999)
        setTime()   以毫秒设置Date对象
        // 下面的转换浏览器不同结果不同
        toString()  把Date转成字符串("Mon Dec 19 2016 16:51:18 GMT+0800 (中国标准时间)")
        toTimeString()  把Date的时间部分转成字符串
        toDateString()  把Date的日期部门转成字符串
        toLocaleString()  把Date转成字符串("2016/12/19 下午4:52:01")
        toLocaleTimeString()  把Date的时间部分转成字符串
        toLocaleDateString()  把Date的日期部门转成字符串
        //下面的是自己新加的方法
        dateAdd(strType, Number) Date类型日期增加或减少
        dateFormat(fmt)  格式化日期(依赖jquery)
        toArray()  转化成数组(年月日时分秒)
        isLeapYear()  判断是否闰年
      //Date对象相关函数
    function daysBetween(DateOne, DateTwo) 比较日期相距天数
    function dateCompare(DateOne, DateTwo) 比较日期大小
    function strToDate(str) 转化成Date对象
     

    2.自己新加的方法:

    (1) dateAdd(strType, Number);

    /**
     * description  在Date类型的基础上进行日期增加或减少
     * @param {String} strType 增加的类型(s(秒)、m(分)、h(时)、d(日)、M(月)、y(年)、星期(w)、季度(q))
     * @param {Number} Number  数值(整数为加,负数为减)
     * @example
     *     new Date().dateFormat("yyyy-MM-dd hh:mm:ss")
     *         ==>"2016-12-19 11:07:36"
     *     new Date().DateAdd("h",12).dateFormat("yyyy-MM-dd hh:mm:ss")
     *         ==>"2016-12-19 23:07:39"
     *     new Date().DateAdd("y",12).dateFormat("yyyy-MM-dd hh:mm:ss")
     *         ==>"2028-12-19 23:07:39"
     * @return {Date} 计算结果
     */
    Date.prototype.dateAdd = function(strType, Number) {
        var dtTmp = this;
        switch (strType) {
            case 's':
                /**/
                return new Date(Date.parse(dtTmp) + (1000 * Number));
            case 'm':
                /**/
                return new Date(Date.parse(dtTmp) + (60000 * Number));
            case 'h':
                /**/
                return new Date(Date.parse(dtTmp) + (3600000 * Number));
            case 'd':
                /**/
                return new Date(Date.parse(dtTmp) + (86400000 * Number));
            case 'w':
                /*星期*/
                return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
            case 'q':
                /*季度*/
                return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
            case 'M':
                /**/
                return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
            case 'y':
                /**/
                return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
        }
    }

    (2) dateFormat(fmt);

    /**
     * @ description 格式化日期类型
     * @ param {String} fmt 定义格式类型(如:yyyy-MM-dd hh:mm:ss)
     * @ param {Date} new Date()  Fri Dec 16 2016 11:05:26 GMT+0800 (中国标准时间)
     * @ example
     * 例:new Date().dateFormat("yyyy-MM-dd")
     *     ==>"2016-12-16"
     * @return {String}  给定格式的String字符串
     */
    Date.prototype.dateFormat = function(fmt) {
        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;
    }

    (3) toArray();

    /**
     * 将标准日期转化为数组年、月、日、时、分、秒
     *  @ example
     * 例:new Date().toArray()
     *    ==>[2016, 12, 16, 15, 10, 59]
     * @return {Array} 包含年、月、日、时、分、秒的数组
     */
    Date.prototype.toArray = function() {
        var myDate = this;
        var myArray = Array();
        myArray[0] = myDate.getFullYear();
        myArray[1] = myDate.getMonth() + 1;
        myArray[2] = myDate.getDate();
        myArray[3] = myDate.getHours();
        myArray[4] = myDate.getMinutes();
        myArray[5] = myDate.getSeconds();
        return myArray;
    }

    (4) isLeapYear();

    /**
     * description 判断Date类型的年份是否是闰年
     * @example
     *  例:new Date().isLeapYear()
     *      ==> true
     * @return {Boolean} 是闰年返回true,反之返回false
     */
    Date.prototype.isLeapYear = function() {
        return (0 == this.getYear() % 4 && ((this.getYear() % 100 != 0) || (this.getYear() % 400 == 0)));
    }

     (5) daysBetween(DateOne, DateTwo);

    /**
     * daysBetween 求两个时间之间的天数差,数据格式:YYYY-MM-dd
     * @param  {String} DateOne  日期1
     * @param  {String} DateTwo  日期2
     * @return {Num}  返回两个日期之间相差的天数
     */
    function daysBetween(DateOne, DateTwo) {
        var OneMonth = DateOne.substring(5, DateOne.lastIndexOf('-'));
        var OneDay = DateOne.substring(DateOne.length, DateOne.lastIndexOf('-') + 1);
        var OneYear = DateOne.substring(0, DateOne.indexOf('-'));
    
        var TwoMonth = DateTwo.substring(5, DateTwo.lastIndexOf('-'));
        var TwoDay = DateTwo.substring(DateTwo.length, DateTwo.lastIndexOf('-') + 1);
        var TwoYear = DateTwo.substring(0, DateTwo.indexOf('-'));
    
        var cha = ((Date.parse(OneMonth + '/' + OneDay + '/' + OneYear) - Date.parse(TwoMonth + '/' + TwoDay + '/' + TwoYear)) / 86400000);
    
        return Math.abs(cha);
    }

     (6) dateCompare(DateOne, DateTwo);

    /**
     * dateCompare 比较两个日期的大小
     * @param  {Date} DateOne 第一个Date对象
     * @param  {Date} DateTwo 第一个Date对象
     * @example
     *   例:dateCompare(new Date(2016,11,12), new Date(2016,11,11));
     *       ==>true
     * @return {Boolean}  如果第一个日期大于第二个日期返回true
     */
    function dateCompare(DateOne, DateTwo) {
        return Date.parse(DateOne) > Date.parse(DateTwo);
    }

     (7) strToDate(str);  

    /**
     * strToDate 将String的字符串转化成Date对象
     * @param  {str} str "yyyy/(-)MM/(-)dd hh:mm:ss或yyyy/(-)MM/(-)dd或yyyy/MM/dd hh:mm:ss"
     * @return {Date}  返回Date类型的时间对象
     */
    function strToDate(str){
        var dateStr = str.replace(/-/g,   "/");
        var str = dateStr.split(" ");
        var arrDate = str[0].split("/");
        arrDate[1]--;
        if(str.length>1){
            var hms = str[1].split(":")
        }else{
            hms = [0,0,0];
        }
        return new Date(arrDate[0], arrDate[1], arrDate[2], hms[0], hms[1], hms[2]);
    }
  • 相关阅读:
    Web API中的消息处理程序(Message Handler)
    Web API中的模型验证
    autoconf配置的项目,编译debug版本
    gcc编译工具生成动态库和静态库之一----介绍
    VMware中四种网络连接模式的区别
    vmware虚拟机三种网络模式的区别
    code block自动生成makefile
    centos7 安装 codeblock(rpm)
    利用cbmakegen导出Code::blocks的Makefile
    C/C++程序CPU问题分析
  • 原文地址:https://www.cnblogs.com/daydayupyxq/p/6200949.html
Copyright © 2020-2023  润新知