dayjs处理时区问题、前端时区问题

1、dayjs如何支持时区

复制代码
<!-- 引入dayjs核心文件:提供时间解析、格式化、加减等基础功能(必选) -->
<script src="./dayjs/dayjs.js"></script>
<!-- 引入utc插件:扩展UTC时间处理能力,支持本地时间与UTC时间互转 -->
<script src="./dayjs/utc.js"></script>
<!-- 引入timezone插件:基于UTC插件,支持IANA时区(如Asia/Shanghai)的跨时区转换 -->
<script src="./dayjs/timezone.js"></script>
<!-- 引入relative插件:扩展相对时间功能,如"1小时前""2天后"等人性化展示 -->
<script src="./dayjs/relative.js"></script>

项目存储时可以和后端约定以上海时间为基准存储,显示时,默认以上海时间显示,用户可在偏好设置里面修改时区

复制代码
dayjs.extend(dayjs_plugin_utc);
dayjs.extend(dayjs_plugin_timezone);
dayjs.extend(dayjs_plugin_relativeTime);

const utcTimestamp = dayjs().tz('Asia/Shanghai').valueOf();

console.log('时间', utcTimestamp, dayjs(utcTimestamp).unix())

2、全球统一时间

注意:默认获取的时间戳就是utc时间,全球统一,只是在格式化成各地区时间后会自动实现换算

复制代码
console.log('utc时间', dayjs.utc().format('YYYY-MM-DD hh:mm:ss'))  
// 或者  
console.log('utc时间', dayjs().tz('UTC').format('YYYY-MM-DD hh:mm:ss'))
复制代码
// 全球时间的统一基准
const utctime = dayjs.utc().unix()

console.log('UTC时间:', dayjs.utc(utctime * 1000).format('YYYY-MM-DD HH:mm:ss'))
// 上面一定要使用utc方法,否则dayjs默认会按本地时区解析
console.log('上海时间:', dayjs(utctime * 1000).tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss'))
console.log('东京时间:', dayjs(utctime * 1000).tz('Asia/Tokyo').format('YYYY-MM-DD HH:mm:ss'))
console.log('悉尼时间:', dayjs(utctime * 1000).tz('Australia/Sydney').format('YYYY-MM-DD HH:mm:ss'))

3、全球各洲及时区

复制代码
[
  {
    "label": "",
    "value": ""
  },
  {
    "label": "非洲",
    "value": "Africa"
  },
  {
    "label": "美国",
    "value": "America"
  },
  {
    "label": "南极洲",
    "value": "Antarctica"
  },
  {
    "label": "北极",
    "value": "Arctic"
  },
  {
    "label": "亚洲",
    "value": "Asia"
  },
  {
    "label": "大西洋",
    "value": "Atlantic"
  },
  {
    "label": "澳大利亚",
    "value": "Australia"
  },
  {
    "label": "巴西",
    "value": "Brazil"
  },
  {
    "label": "加拿大",
    "value": "Canada"
  },
  {
    "label": "智利",
    "value": "Chile"
  },
  {
    "label": "欧洲",
    "value": "Europe"
  },
  {
    "label": "印度",
    "value": "Indian"
  },
  {
    "label": "墨西哥",
    "value": "Mexico"
  },
  {
    "label": "太平洋",
    "value": "Pacific"
  },
  {
    "label": "US",
    "value": "US"
  }
]
相关推荐
孟浩浩28 分钟前
JAVA SpringAI+阿里云百炼应用开发
java·开发语言·阿里云
碧蓝的水壶1 小时前
数据转换过程
java·开发语言·windows
newbe365241 小时前
我们如何使用 impeccable 优化前端界面设计与实现稳定性
前端·人工智能·分布式·github·aigc·wpf
2501_947575807 小时前
计算机毕业设计之jsp开山车行二手车交易系统
java·开发语言·hadoop·python·信息可视化·django·课程设计
骑士雄师7 小时前
java面试题 4:鉴权
java·开发语言
KaMeidebaby8 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
时间的拾荒人8 小时前
C语言字符函数与字符串函数完全指南
c语言·开发语言
2501_948106918 小时前
计算机毕业设计之基于jsp教科研信息共享系统
java·开发语言·信息可视化·spark·课程设计
kyriewen9 小时前
我筛了 1400 个 Claude Code Skills,留下 5 个天天在用的
前端·ai编程·claude
取经蜗牛9 小时前
Python 第一阶段完全指南:从零到第一个实用工具
开发语言·python