前言
因为项目是国际化的,所以里面后端接口返回的所有时间都是采用世界标准时间UTC表示,而前端则需要根据当前所在的时区转成当前的时间,比如返回的时间是中午12点,则你在中国打开则应该显示20点((UTC+8个时区)),在纽约打开则显示早上8点(UTC-4个时区)。 看起来其实也不难,就是获取所在的时区然后再去加减。为了方便,我就直接用moment.js
这个插件来运算了。 这个插件功能太强大,文档内容太多,找这些api还花了不少功夫~,所以记录一下
安装
npm install moment --save // npm
yarn add moment // Yarn
使用
- 将utc时间转为本地时间
// utils.js
import moment from 'moment'
// 这里date是后端返回的字符串格式,如:2022-05-13 16:31:53
export function utcToLocal(date) {
const fmt = 'YYYY-MM-DD HH:mm:ss'
return moment.utc(date).local().format(fmt)
}
- 将本地时间转为utc时间
export function localToUtc(date) {
const fmt = 'YYYY-MM-DD HH:mm:ss'
return moment(date, fmt).utc().format(fmt)
}
完事~