279 lines
7.9 KiB
JavaScript
279 lines
7.9 KiB
JavaScript
/**
|
|
* @description 日期转换工具类
|
|
*/
|
|
|
|
/**
|
|
* 2020-07-12T11:39:35.000+00:00 =》 2020-07-12 12:24:18
|
|
* 如果是当天的话 只显示时分秒
|
|
* @returns {string}
|
|
* @param date
|
|
*/
|
|
|
|
export function toDayTime(date) {
|
|
if (!date) return "";
|
|
|
|
// Convert input date to Date object
|
|
const inputDate = new Date(date);
|
|
|
|
// Get current date
|
|
const now = new Date();
|
|
|
|
// Check if the input date is today
|
|
const isToday =
|
|
inputDate.getDate() === now.getDate() &&
|
|
inputDate.getMonth() === now.getMonth() &&
|
|
inputDate.getFullYear() === now.getFullYear();
|
|
|
|
// Adjust for timezone offset (+8 hours)
|
|
const adjustedDate = new Date(+inputDate + 8 * 3600 * 1000);
|
|
|
|
if (isToday) {
|
|
// Return only time (HH:MM:SS)
|
|
return adjustedDate
|
|
.toISOString()
|
|
.split("T")[1]
|
|
.replace(/\.[\d]{3}Z/, "");
|
|
} else {
|
|
// Return full date and time (YYYY-MM-DD HH:MM:SS)
|
|
return adjustedDate
|
|
.toISOString()
|
|
.replace(/T/g, " ")
|
|
.replace(/\.[\d]{3}Z/, "");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 2020-07-12T11:39:35.000+00:00 =》 2020-07-12 12:24:18
|
|
* @returns {string}
|
|
* @param date
|
|
*/
|
|
export function renderTime(date) {
|
|
if (!date) return "";
|
|
const dateee = new Date(date).toJSON();
|
|
return new Date(+new Date(dateee) + 8 * 3600 * 1000)
|
|
.toISOString()
|
|
.replace(/T/g, " ")
|
|
.replace(/\.[\d]{3}Z/, "");
|
|
}
|
|
|
|
/**
|
|
* // 时间戳转日期(包含年月日时分秒)
|
|
* @param timestamp
|
|
* @returns {string}
|
|
*/
|
|
export function timestampToTime(timestamp) {
|
|
if (timestamp) {
|
|
let date = new Date(parseInt(timestamp));
|
|
let Y = date.getFullYear() + "-";
|
|
let M =
|
|
(date.getMonth() + 1 < 10
|
|
? "0" + (date.getMonth() + 1)
|
|
: date.getMonth() + 1) + "-";
|
|
let D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
let h =
|
|
(date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
|
|
let m =
|
|
(date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) +
|
|
":";
|
|
let s =
|
|
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
|
return Y + M + D + " " + h + m + s;
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
export function renderDate(date) {
|
|
if (!date) return "";
|
|
const fmt = "yyyy-MM-dd";
|
|
return renderDefault(date, fmt);
|
|
}
|
|
|
|
export function renderDefault(data, fmt) {
|
|
if (data == null) {
|
|
return null;
|
|
}
|
|
|
|
const date = new Date(data);
|
|
const 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 (const 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;
|
|
}
|
|
|
|
/**
|
|
* 日期字符串转年月日
|
|
* @param time
|
|
* @returns {string}
|
|
*/
|
|
export function timeToYMD(time) {
|
|
if (time) {
|
|
let date = new Date(time);
|
|
let Y = date.getFullYear() + "-";
|
|
let M =
|
|
(date.getMonth() + 1 < 10
|
|
? "0" + (date.getMonth() + 1)
|
|
: date.getMonth() + 1) + "-";
|
|
let D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
return Y + M + D;
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
// let datetransform = {
|
|
// // 将日期转换成含T的格式不含秒
|
|
// toTformat(times) {
|
|
// var time = times
|
|
// if (time) {
|
|
// var date = new Date(time)
|
|
// let Y = date.getFullYear() + '-'
|
|
// let M =
|
|
// (date.getMonth() + 1 < 10
|
|
// ? '0' + (date.getMonth() + 1)
|
|
// : date.getMonth() + 1) + '-'
|
|
// let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
|
|
// let h =
|
|
// (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
|
|
// let m =
|
|
// date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
|
|
// let s =
|
|
// date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
|
|
// return Y + M + D + 'T' + h + m
|
|
// } else {
|
|
// return ''
|
|
// }
|
|
// },
|
|
// // 将日期转换成标准格式
|
|
// tonormalformat(times) {
|
|
// var time = times
|
|
// if (time) {
|
|
// var date = new Date(time)
|
|
// let Y = date.getFullYear() + '-'
|
|
// let M =
|
|
// (date.getMonth() + 1 < 10
|
|
// ? '0' + (date.getMonth() + 1)
|
|
// : date.getMonth() + 1) + '-'
|
|
// let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
|
|
// let h =
|
|
// (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
|
|
// let m =
|
|
// (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) +
|
|
// ':'
|
|
// let s =
|
|
// date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
|
|
// return Y + M + D + ' ' + h + m + s
|
|
// } else {
|
|
// return ''
|
|
// }
|
|
// },
|
|
// // 日期转时间戳
|
|
// tostamp(times) {
|
|
// if (times) {
|
|
// let time = new Date(times)
|
|
// return time.getTime()
|
|
// } else {
|
|
// return ''
|
|
// }
|
|
// },
|
|
// // 日期转时间戳(零点)
|
|
// tozerostamp(times) {
|
|
// if (times) {
|
|
// let time = new Date(times + ' 00:00:00')
|
|
// return time.getTime()
|
|
// } else {
|
|
// return ''
|
|
// }
|
|
// },
|
|
//
|
|
// // 时间戳转日期(包含年月日)
|
|
// getday(timestamp) {
|
|
// if (timestamp) {
|
|
// let date = new Date(parseInt(timestamp))
|
|
// let Y = date.getFullYear() + '-'
|
|
// let M =
|
|
// (date.getMonth() + 1 < 10
|
|
// ? '0' + (date.getMonth() + 1)
|
|
// : date.getMonth() + 1) + '-'
|
|
// let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
|
|
// let h =
|
|
// (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
|
|
// let m =
|
|
// (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) +
|
|
// ':'
|
|
// let s =
|
|
// date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
|
|
// return Y + M + D
|
|
// } else {
|
|
// return ''
|
|
// }
|
|
// },
|
|
// // 时间戳转日期(包含时分秒)
|
|
// gethour(timestamp) {
|
|
// if (timestamp) {
|
|
// let date = new Date(parseInt(timestamp))
|
|
// let Y = date.getFullYear() + '-'
|
|
// let M =
|
|
// (date.getMonth() + 1 < 10
|
|
// ? '0' + (date.getMonth() + 1)
|
|
// : date.getMonth() + 1) + '-'
|
|
// let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
|
|
// let h =
|
|
// (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
|
|
// let m =
|
|
// (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) +
|
|
// ':'
|
|
// let s =
|
|
// date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
|
|
// return h + m + s
|
|
// } else {
|
|
// return ''
|
|
// }
|
|
// },
|
|
// // 日期/时分秒,参数为空时返回当前日期时间 type为"day"时返回当天日期 type为"hour"时返回当天时间 type空时返回当天日期加时间
|
|
// getnow(type) {
|
|
// let date = new Date()
|
|
// let Y = date.getFullYear() + '-'
|
|
// let M =
|
|
// (date.getMonth() + 1 < 10
|
|
// ? '0' + (date.getMonth() + 1)
|
|
// : date.getMonth() + 1) + '-'
|
|
// let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
|
|
// let h =
|
|
// (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
|
|
// let m =
|
|
// (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) +
|
|
// ':'
|
|
// let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
|
|
// if (type == 'day') {
|
|
// return Y + M + D
|
|
// } else if (type == 'hour') {
|
|
// return h + m + s
|
|
// } else {
|
|
// return Y + M + D + ' ' + h + m + s
|
|
// }
|
|
// },
|
|
// }
|