几个日期和时间相关的函数,用于格式化日期、时间和毫秒数

53 阅读1分钟

几个日期和时间相关的函数,用于格式化日期、时间和毫秒数。 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 }