版权声明:本文为博主原创文章,未经博主允许不得转载。 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()
}
}