JS - UTC時間轉換(相差8小時解決方法)


前言

  • 后端返回的UTC時間格式
2021-09-03T22:42:05.659+00:00
  • 前端格式化后發現多了8小時:
2021/09/04 06:42:05
  • 其原因是北京時間與UTC時間相差8個時區,用了常規獲取日期數據的方法:
date.getFullYear()
date.getMonth()

修改方法

  • 使用getUTC***()方法獲取
/**
 * UTC時間轉換
 * @returns {string}
 * @param datetime UTC時間
 * @param dateSeprator 日期拼接符
 * @param timeSeprator 時間拼接符
 * @Eexample dateFormat("2021-09-03T22:42:05.659+00:00", "/", ":")
 *           dateFormat("2021-09-03T22:42:05.659+00:00")
 */
export function transTimestamp(datetime, dateSeprator = '/', timeSeprator = ':') {
  if (datetime) {
    const date = new Date(datetime)
    const year = `${date.getUTCFullYear()}`
    let month = `${date.getUTCMonth() + 1}`
    let day = `${date.getUTCDate()}`
    let hour = `${date.getUTCHours()}`
    let minute = `${date.getUTCMinutes()}`
    let second = `${date.getUTCSeconds()}`

    if (month.length === 1) {
      month = `0${month}`
    }
    if (day.length === 1) {
      day = `0${day}`
    }
    if (day.length === 1) {
      day = `0${day}`
    }
    if (hour.length === 1) {
      hour = `0${hour}`
    }
    if (minute.length === 1) {
      minute = `0${minute}`
    }
    if (second.length === 1) {
      second = `0${second}`
    }
    return `${year}${dateSeprator}${month}${dateSeprator}${day} ${hour}${timeSeprator}${minute}${timeSeprator}${second}`
  }
}
  • 結果如下:
2021/09/03 22:42:05

- End -
點贊加收藏
小手留余香


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM