几个日期和时间相关的函数,用于格式化日期、时间和毫秒数。
javascript
/**
- 返回年月日
- @param {Date} date - 日期对象
- @param {string} [splitor=‘-’] - 分隔符,默认为’-’
- @returns {string} - 格式化后的日期字符串,格式为YYYY-MM-DD
*/
export function getDate(date, splitor = ‘-’) {
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
return${year}${splitor}${addZeroPrefix(month)}${splitor}${addZeroPrefix(day)}
;
}
/**
- 返回时分秒/时分
- @param {Date} date - 日期对象
- @param {boolean} [withSecond=false] - 是否包含秒,默认为false
- @returns {string} - 格式化后的时间字符串,格式为HH:MM或HH:MM:SS
*/
export function getTime(date, withSecond = false) {
const hour = date.getHours();
const minute = date.getMinutes();
const second = date.getSeconds();
return withSecond ?${addZeroPrefix(hour)}:${addZeroPrefix(minute)}:${addZeroPrefix(second)}
:${addZeroPrefix(hour)}:${addZeroPrefix(minute)}
;
}
/**
- 返回年月日时分秒毫秒
- @returns {string} - 格式化后的完整日期时间字符串,包括毫秒
*/
export function getMillisecond() {
const now = new Date();
// … (省略了中间代码,与上面类似)
const millisecond = now.getMilliseconds();
return${year}${month < 10 ? '0' + month : month}${day < 10 ? '0' + day : day}${hour < 10 ? '0' + hour : hour}${minute < 10 ? '0' + minute : minute}${second < 10 ? '0' + second : second}${millisecond < 10 ? '00' + millisecond : millisecond < 100 ? '0' + millisecond : millisecond}
;
}
/**
- 返回年月日 时分
- @param {Date} date - 日期对象
- @returns {string} - 格式化后的日期时间字符串
*/
export function getFullDate(date) {
return${getDate(date)} ${getTime(date)}
;
}
/**
- 根据时间戳返回年月日 时分
- @param {number} timestamp - 时间戳
- @returns {string} - 格式化后的日期时间字符串
*/
export function formatDateForTimestamp(timestamp) {
const date = new Date(timestamp);
// … (省略了中间代码,与上面类似)
return${year}-${month}-${day} ${hour}:${minute}
;
}
/**
- 判断是否为今天
- @param {Date} date - 日期对象
- @returns {boolean} - 是否为今天的布尔值
*/
export function isToday(date) {
return date.toDateString() === new Date().toDateString();
}
/**
- 个位数时加0前缀
- @param {number} number - 需要处理的数字
- @returns {string} - 格式化后的字符串
*/
export function addZeroPrefix(number) {
return number < 10 ?0${number}
: number;
}
export function formatTime(secondTime) {
const time = secondTime
let newTime, hour, minite, seconds
if (time >= 3600) {
hour = parseInt(time / 3600) < 10 ? ‘0’ + parseInt(time / 3600) : parseInt(time / 3600)
minite = parseInt(time % 60 / 60) < 10 ? ‘0’ + parseInt(time % 60 / 60) : parseInt(time % 60 / 60)
seconds = time % 3600 < 10 ? ‘0’ + time % 3600 : time % 3600
if (seconds > 60) {
minite = parseInt(seconds / 60) < 10 ? ‘0’ + parseInt(seconds / 60) : parseInt(seconds / 60)
seconds = seconds % 60 < 10 ? ‘0’ + seconds % 60 : seconds % 60
}
newTime = hour + ‘:’ + minite + ‘:’ + seconds
} else if (time >= 60 && time < 3600) {
minite = parseInt(time / 60) < 10 ? ‘0’ + parseInt(time / 60) : parseInt(time / 60)
seconds = time % 60 < 10 ? ‘0’ + time % 60 : time % 60
newTime = ‘00:’ + minite + ‘:’ + seconds
} else if (time < 60) {
seconds = time < 10 ? ‘0’ + time : time
newTime = ‘00:00:’ + seconds
}
return newTime
}