1.格式化日期,例如yyyy-MM-dd
Date.prototype.format = function(fmt) {
var o = {
"M+" : this.getMonth() + 1,
"d+" : this.getDate(),
"h+" : this.getHours() % 12 == 0 ? 12 : this.getHours() % 12,
"H+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"q+" : Math.floor((this.getMonth() + 3) / 3),
"S" : this.getMilliseconds()
};
var week = {
"0" : "\u65e5",
"1" : "\u4e00",
"2" : "\u4e8c",
"3" : "\u4e09",
"4" : "\u56db",
"5" : "\u4e94",
"6" : "\u516d"
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
if (/(E+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);
}
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;
}
2.获取这周的周一日期
function getFirstDayOfWeek (date) {
var weekday = date.getDay()||7;
date.setDate(date.getDate()-weekday+1);
return date.format('yyyy-MM-dd');
}
3.得到下周的最后一天(周日)
function getNextLastDateOfWeek(theDate){
var b=theDate.getDate();
b=b-theDate.getDay();
theDate.setDate(b+14);
return theDate.format('yyyy-MM-dd');
}
4.根据日期查询在本年度的第几周
function getYearWeek(endDate) {
var beginDate = new Date(endDate.getFullYear(), 0, 1);
var endWeek = endDate.getDay();
if (endWeek == 0) endWeek = 7;
var beginWeek = beginDate.getDay();
if (beginWeek == 0) beginWeek = 7;
var millisDiff = endDate.getTime() - beginDate.getTime();
var dayDiff = Math.floor(( millisDiff + (beginWeek - endWeek) * (24 * 60 * 60 * 1000)) / 86400000);
return Math.ceil(dayDiff / 7) + 1;
}
5.查询一年有多少周
function getDate(year) {
var first = new Date(year, 0, 1).getDay()
if ((year % 4 == 0 && year % 100 != 0)
|| (year % 100 == 0 && year % 400 == 0)) {
var allyears = 366
} else {
var allyears = 365
}
var week = parseInt((allyears + first) / 7)
if (((allyears + first) % 7) != 0) {
week += 1
}
return week
}
6.毫秒转换为几天几小时几分钟
function timeConversion(data){
const useTime = data;
const days = Math.floor(useTime / (1000 * 60 * 60 * 24));
const hours = Math.floor((useTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((useTime % (1000 * 60 * 60)) / (1000 * 60));
if (days > 0) {
return `${days} 天 ${hours} 小时 ${minutes} 分钟`;
}
if (hours > 0) {
return `${hours} 小时 ${minutes} 分钟`;
}
return `${minutes} 分钟`;
}
7.计算日期的前后n个月份日期
function dateMonAgo(date,n){
let new_date = new Date(date);
let lastDate = new Date(new_date.setMonth(new_date.getMonth() + n));
return lastDate.format('yyyy-MM-dd');
}