将UTC时间转换为当地的时间


在哪个国建就按当地的时区展示

 

比如:我从后端获取的数据是UTC格式:'2020-09-08 12:23:33' (后端存数据是按照UTC存的,给我返的数据是这种格式,并且是字符串) 

在美国应该按照美国的时区展示,在韩国应该按照韩国(东九区)的时区展示如:'2020-09-08 21:23:33' 

具体代码:

形参date就是传递过来的utc数据,就是'2020-09-08 12:23:33' 这个字符串

思路:先转换为date对象,使用moment.js,在转换为当地的时间

import moment from 'moment'
const transFormTimeToLocalTime = date => {
  if (date) {
    const stillUtc = moment.utc(date).toDate()

    return moment(stillUtc)
      .local()
      .format('DD/MM/YYYY HH:mm:ss')
  } else {
    return '--'
  }
}

const transFormTimeToLocalDate = date => {
  if (date) {
    const stillUtc = moment.utc(date).toDate()

    return moment(stillUtc)
      .local()
      .format('DD/MM/YYYY')
  } else {
    return '--'
  }
}

 

如果后端反的是时间戳,如:1605773943,那么之间转换为日期格式就好了

这个时间戳转换为日期格式之后,你在哪个时区就按照哪个时区显示:

// 将时间戳转换成Y-m-d H:i:s
export function timestampToTime(timestamp) {
  const date = new Date(timestamp * 1000) // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
  const year = date.getFullYear()
  const month =
    date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
  const day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
  const hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
  const minutes =
    date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
  const seconds =
    date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
  return (
    year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
  )
}

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM