传入一个时间戳 返回一个对象
formatDate(times) {
const date = new Date(+times);
const time = date.getTime();
const year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? `0${month}` : month;
let day = date.getDate();
day = day < 10 ? `0${day}` : day;
let hour = date.getHours();
hour = hour < 10 ? `0${hour}` : hour;
let minute = date.getMinutes();
minute = minute < 10 ? `0${minute}` : minute;
let second = date.getSeconds();
second = second < 10 ? `0${second}` : second;
const week = {
0: '周日',
1: '周一',
2: '周二',
3: '周三',
4: '周四',
5: '周五',
6: '周六',
};
const w = date.getDay();
return {
year,
month,
day,
week: week[w],
hour,
minute,
second,
time,
};
},
传入一个时间,返回格式化后的字符串
/**
* 时间格式化
* @param {Date} time 需要格式化的事件戳
* @param {string} pattern 格式化的格式默认 {y}-{m}-{d} {h}:{i}:{s}
* @returns {string} 格式化的字符串
* @example
* formatTime(new Date(),'{y}-{m}-{d} {h}:{i}')
* formatTime(new Date().getTime(),'{y}-{m}-{d} {h}:{i}')
* formatTime('2024-05-14 10:14','{y}-{m}-{d} {h}:{i}')
*/
const formatTime = function (time = new Date(), pattern) {
console.log('time', time);
if (arguments.length === 0 || !time) {
return null;
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}';
let date;
if (typeof time === 'object') {
date = time;
} else {
if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
time = parseInt(time);
} else if (typeof time === 'string') {
time = time
.replace(new RegExp(/-/gm), '/')
.replace('T', ' ')
.replace(new RegExp(/\.[\d]{3}/gm), '');
}
if (typeof time === 'number' && time.toString().length === 10) {
time = time * 1000;
}
date = new Date(time);
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay(),
};
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key];
// Note: getDay() returns 0 on Sunday
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value];
}
if (result.length > 0 && value < 10) {
value = '0' + value;
}
return value || 0;
});
return time_str;
};
为了方便后面再使用,记录一下