获取当前时间
let currentTimeStamp = new Date()
console.log(currentTimeStamp)
// Fri Jun 14 2024 09:11:32 GMT+0800 (中国标准时间)
对当前时间进行格式化处理
const date = {
/**
* 日期格式化
* @param dateStr 时间戳
* @param fmt 预期格式的字符串
* 例子:toFormat(Date.now(), 'yyyy-MM-dd');
* @returns 返回一个以‘2012-12-12’格式的字符串
*/
toFormat: function (dateStr: number | string, fmt: string) {
if (!dateStr) {
return '';
}
dateStr = typeof dateStr === 'string' ? parseInt(dateStr) : dateStr;
fmt = fmt || 'yyyy/MM/dd';
const date = new Date(dateStr);
const o = {
'M+': date.getMonth() + 1, // 月份
'd+': date.getDate(), // 日
'h+': date.getHours(), // 小时
'H+': date.getHours(), // 小时
'm+': date.getMinutes(), // 分
's+': date.getSeconds(), // 秒
'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
S: date.getMilliseconds() // 毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (const k of Object.keys(o)) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length === 1
? String(o[k as keyof typeof o])
: ('00' + o[k as keyof typeof o]).substr(
('' + o[k as keyof typeof o]).length
)
);
}
}
return fmt;
},
toFormatTimestamp: function (str: string) {
str = str + '';
const timestamp = new Date(str.replace(/-/g, '/')).getTime();
return isNaN(timestamp) ? '' : timestamp;
},
/**
* 根据时间拼接后获取时间戳(方法不严谨,之后优化)
* case1:
* dateData ['2018/11/28','2018/11/28']
* return ['1543334400','1543420799']
* case2:
* dateData '2018/11/28'
* return '1543334400'
*/
getDateTimestamp: function (dateData: string[], timeData?: string[]) {
if (Object.prototype.toString.apply(dateData) === '[object Array]') {
if (!dateData[0]) {
return [];
}
const startTimeString = timeData && timeData[0] ? timeData[0] : '00:00:00';
const startDate: Date = new Date(dateData[0] + ' ' + startTimeString);
const startTime = startDate.getTime();
let endTimeString;
let endTime;
if (timeData && timeData[1]) {
endTimeString = timeData[1];
// safari使用new Date()的时候不识别 24:00:00, 格式化为23:59:59
endTimeString = endTimeString == '24:00' ? '23:59:59' : endTimeString + ':00';
endTime = new Date(dateData[1] + ' ' + endTimeString).getTime() + 999;
} else {
endTimeString = '23:59:59';
endTime = new Date(dateData[1] + ' ' + endTimeString).getTime() + 999;
}
return [startTime, endTime];
} else {
return [new Date(dateData + ' 00:00:00').getTime()];
}
}
};
export default date;
根据入参格式,对时间进行格式化处理
yyyyMM-dd hh:mm:ss
export function getCurrentDateTime(fmt) {
let myDate = new Date()
let yyyy = myDate.getFullYear() //获取完整的年份(4位,1970-????)
let M = myDate.getMonth() + 1 //获取当前月份(0-11,0代表1月)
let MM = M < 10 ? "0" + M : M //补零
let d = myDate.getDate() //获取当前日(1-31)
let dd = d < 10 ? "0" + d : d //补零
let h = myDate.getHours() //获取当前小时数(0-23)
let hh = h < 10 ? "0" + h : h //补零
let m = myDate.getMinutes() //获取当前分钟数(0-59)
let mm = m < 10 ? "0" + m : m //补零
let s = myDate.getSeconds() //获取当前秒数(0-59)
let ss = s < 10 ? "0" + s : s //补零
let ms = myDate.getMilliseconds() //获取当前毫秒数(0-999)
let ms3 = ms < 10 ? "00" + ms : ms < 100 ? "0" + ms : ms
let week = myDate.getDay() //获取当前星期X(0-6,0代表星期天)
let lomgMs = myDate.getTime() //获取当前时间(从1970.1.1开始的毫秒数)
let weekArr = [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六"
]
// 获取当前时间 202307170923167
if (fmt == "yyyy-MM-dd hh:mm:ss") {
let str = `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss}`
return str
} else if (fmt == "yyyy/MM/dd hh:mm:ss") {
let str = `${yyyy}/${MM}/${dd} ${hh}:${mm}:${ss}`
return str
} else if (fmt == "yyyyMMddhhmmss") {
let str = `${yyyy}${MM}${dd}${hh}${mm}${ss}${ms3}`
return str
} else if (fmt == "yyyy-MM-dd hh:mm:ss W") {
let str = `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss} ${weekArr[week]}`
return str
}
}
const fmtStr = getCurrentDateTime(‘yyyy-MM-dd hh:mm:ss’)
console.log(fmtStr) // 2024-06-14 09:19:44
对Date的扩展,将 Date 转化为指定格式的String
let aa = (new Date()).Format(“yyyy-MM-dd hh:mm:ss.S”)
// 2006-07-02 08:09:04.423
let bb = (new Date()).Format(“yyyy-M-d h:m:s.S”)
// 2006-7-2 8:9:4.18
export function parseDate(date, fmt) {
//
var o = {
"M+": date.getMonth() + 1, // 月份
"d+": date.getDate(), // 日
"h+": date.getHours(), // 小时
"m+": date.getMinutes(), // 分
"s+": date.getSeconds(), // 秒
"q+": Math.floor((date.getMonth() + 3) / 3), // 季度
S: date.getMilliseconds() // 毫秒
}
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(date.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
}