js 时间相关函数

比较两个时间的大小,例如比较10:00和14:28的大小,函数如下

CompareTime = function (t1, t2) {
        var date = new Date();
        var a = t1.split(":");
        var b = t2.split(":");
        return date.setHours(a[0], a[1]) > date.setHours(b[0], b[1]);
    }

计算两个时间的差值(秒,分钟,小时,天),函数如下

   GetDateDiff = function (startTime, endTime, diffType) {
        //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 
        startTime = startTime.replace(/-/g, "/");
        endTime = endTime.replace(/-/g, "/");
        //将计算间隔类型字符转换为小写
        diffType = diffType.toLowerCase();
        var sTime = new Date(startTime); //开始时间
        var eTime = new Date(endTime); //结束时间
        //作为除数的数字
        var timeType = 1;
        switch (diffType) {
            case "second":
                timeType = 1000;
                break;
            case "minute":
                timeType = 1000 * 60;
                break;
            case "hour":
                timeType = 1000 * 3600;
                break;
            case "day":
                timeType = 1000 * 3600 * 24;
                break;
            default:
                break;
        }
        return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(timeType));
    }

获取当前时间左右的第N天,函数如下

GetDateStr = function (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;
    }

将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd,函数如下

//为Date原型添加如下的方法:
    Date.prototype.format = 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;
    }

使用:new Date().format("yyyy-MM-dd");

原文地址:https://www.cnblogs.com/luna-hehe/p/11137997.html