js $和Date对象扩展time方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37285193/article/details/82628017

一.扩展方式

1. $扩展
$.extend({}); //为jQuery类添加添加类方法,可以理解为添加静态方法。
2.Date对象扩展
Date.prototype = {}

二. time 具体方法

1.个位时间加0前缀
addZero: function(temp) { 
    return temp < 10 ? "0" + temp : temp;
}
2.时间格式浏览器兼容
getTimeStap: function(val) {
  return isNaN(val) ? Date.parse(val.replace(new RegExp(/-/gm), "/")) : val
}
3.格式化时间

YYYY-MM-DD

getDateformat: function(val, mark = "-") {
    if (val) {
        var dd = new Date($.getTimeStap(val))
        var y = dd.getFullYear();
        var m = $.addZero(dd.getMonth() + 1);
        var d = $.addZero(dd.getDate());
        return y + mark + m + mark + d;
    } else {
        return "";
    }
}

YYYY-MM-DD hh:mm:ss

getDateformatT: function(val, mark = "-") {
   if (val) {
        var dd = new Date($.getTimeStap(val))
        var y = dd.getFullYear();
        var m = $.addZero(dd.getMonth() + 1);
        var d = $.addZero(dd.getDate());
        var hours = $.addZero(dd.getHours());
        var minutes = $.addZero(dd.getMinutes());
        var seconds = $.addZero(dd.getSeconds());
        return y + mark + m + mark + d + " " + hours + ":" + minutes + ":" + seconds;;
    } else {
        return "";
    }
}
4.获取今天前后几天时间

YYYY-MM-DD

getBeforeDay: function(dayNum = 0, mark = "-") { 
    var dd = new Date();
    dd.setDate(dd.getDate() + dayNum); 
    var y = dd.getFullYear();
    var m = $.addZero(dd.getMonth() + 1); 
    var d = $.addZero(dd.getDate());
    return y + mark + m + mark + d;
}

YYYY-MM-DD hh:mm:ss

getBeforeDayT: function(dayNum = 0, mark = "-") { 
    var dd = new Date();
    dd.setDate(dd.getDate() + dayNum); 
    var y = dd.getFullYear();
    var m = $.addZero(dd.getMonth() + 1);
    var d = $.addZero(dd.getDate());
    var hours = $.addZero(dd.getHours());
    var minutes = $.addZero(dd.getMinutes());
    var seconds = $.addZero(dd.getSeconds());
    return y + mark + m + mark + d + " " + hours + ":" + minutes + ":" + seconds;
}
5.获取本月前后几个月
 getBeforeMonth: function(monthNum = 0, mark = "-") {
    var dd = new Date();
    dd.setMonth(dd.getMonth() + monthNum);
    var y = dd.getFullYear();
    var m = dd.getMonth() + 1;
    return y + mark + $.addZero(m)
}
6.获取时间差

天数差

getDaySub: function(startVal, endVal) {
    return ($.getTimeStap(endVal) - $.getTimeStap(startVal)) / 86400000 + 1 + "天"
}

月份天数差

getMonthSub: function(startVal, endVal) {
    var beforeTime = new Date($.getTimeStap(startVal))
    var lastTime = new Date($.getTimeStap(endVal))
    var y = beforeTime.getFullYear()
    var y1 = lastTime.getFullYear()
    var m = beforeTime.getMonth() + 1
    var m1 = lastTime.getMonth() + 1
    var d = beforeTime.getDate()
    var d1 = lastTime.getDate()
    var tm = 0;
    var td = 0;
    if (d < d1 + 1) {
        if (d == 1 && d1 == new Date(y1, m1, 0).getDate()) {
            tm = (y1 - y - 1) * 12 + (m1 + 12 - m) + 1
        } else {
            tm = (y1 - y - 1) * 12 + (m1 + 12 - m)
            td = d1 - d + 1
        }
    } else if (d > d1 + 1) {
        if (m1 > m) {
            tm = (y1 - y) * 12 + (m1 - m - 1)
            td = (d1 - d + 1 + new Date(y1, m1 - 1, 0).getDate())
        } else {
            tm = (y1 - y - 1) * 12 + (m1 - m - 1 + 12)
            if (m1 == 1) {
                td = (d1 - d + 1 + new Date(y1 - 1, 12, 0).getDate())
            } else {
                td = (d1 - d + 1 + new Date(y1, m1 - 1, 0).getDate())
            }
        }
    } else {
        if (m1 == m) {
            tm = (y1 - y) * 12
        } else {
            tm = (y1 - y - 1) * 12 + (m1 - m + 12)
        }
    }
    return { "m": tm, "d": td }
}
7.获取本月第一天和最后一天日期
 getMonthDay: function(val) {
    var dd = new Date($.getTimeStap(val))
    var y = dd.getFullYear();
    var m = $.addZero(dd.getMonth() + 1);
    var d = new Date(y, m, 0);
    return {
        firstDay: y + '-' + m + '-01',
        lastDay: y + '-' + m + '-' + d.getDate()
    }
}
8.获取本月第一天星期
getMonthWeek: function(val) {
    var dd = new Date($.getTimeStap(val));
    var y = dd.getFullYear();
    var m = dd.getMonth();
    var d = new Date(y, m, 1);
    var week = d.getDay();
    return week
}
9.获取某天年、月、日、星期 以及 本月天数
getDay: function(val = new Date()) { 
    var dd = new Date($.getTimeStap(val));
    var y = dd.getFullYear();
    var m = dd.getMonth() + 1;
    var d = dd.getDate();
    var ds = new Date(y, m, 0);
    return {
        ym: y + "-" + $.addZero(m),
        d: $.addZero(d),
        y: y,
        m: m,
        ds: ds.getDate(),
        week: dd.getDay()
    }
}

猜你喜欢

转载自blog.csdn.net/m0_37285193/article/details/82628017
今日推荐