dayjs处理utc转换

常规的时间处理直接使用 dayjs 库就可以满足了,大而全一些的就使用 momnet.js 处理吧

dayjs适合移动端或网站对时间处理没那么复杂的,比较轻量

moment.js是一个功能非常齐全的处理时间的类库,在PC站上使用比较合适,毕竟使用wifi比使用流量好多了,哈哈

如果一般项目已经使用了dayjs,突然来个需求要处理utc时间转换,这时又不想再下载momnet.js,有以下两个方式可以处理

一、手写

var bjTimestamp = 1584027168;
var localTimezoneMinutes = 420; // 每个时区间隔1小时,转换为分钟就是60,420也就是东七区,60 * 7 = 420,而480就表示东八区转换为秒为28800
var localTime = dayjs((bjTimestamp + (localTimezoneMinutes - 480) * 60) * 1000).format('YYYY-MM-DD');

二、下载dayjs-plugin-utc扩展插件

npm安装地址:https://www.npmjs.com/package/dayjs-plugin-utc

引入后直接使用utfOffset做时区偏移就行了

import dayjs from 'dayjs'
import dayjsPluginUTC from 'dayjs-plugin-utc'

dayjs.extend(dayjsPluginUTC)

// 计算当地时间
function calcLocalTime (bjTimestamp, localTimezoneMinutes, format) {
  if (bjTimestamp && localTimezoneMinutes) {
    return dayjs(bjTimestamp * 1000)
      .utcOffset(localTimezoneMinutes)
      .format(format || "YYYY-MM-DD HH:mm");
  }
  return "--";
}
calcLocalTime(1584027168, 420);

补充介绍一下,utc时间,世界调整时,就是各个时区的时间不一样,像北京时间是8点,那东京时间就是9点,比我们多了一个时区。之所以要转换时间,是因为手机时间会根据时区自动调整,假如我们坐一个航班8点出发到东京2个小时,我们手机当时看是10点到达,如果你到了东京手机上显示的时间应该是11点到达。

PS:写作不易,如要转裁,请标明转载出处。
%{ comment.page.total }条评论

猜你想看

微信小程序:前端开发宝典

最近文章
工具操作
  • 内容截图
  • 全屏
登录
注册
回顶部