前端Vue3使用Moment Timezone处理不同时区时间

news2024/11/19 17:46:52

文章目录

  • 前言
  • 一、基本时间概念
      • UTC , GMT
      • 本地时间
    • 为了方便比较,图中黑色背景的是 中国(China)区电脑,白色主题背景的是美国(US)区电脑)
      • 2023-06-27T14:00:00.000Z
  • 二、实际案例
    • 表单填写后传给后端的时间格式(Moment Timezone 方式)
    • 拿到时间字段回显
        • 在中国区电脑验证:
        • 在美国时区电脑验证:
  • 总结


前言

公司是跨国公司,一个表单提交的时间,需要带时区。才可以在不同地方正确显示时间;


一、基本时间概念

UTC , GMT

GMT是前世界标准时,UTC是现世界标准时。

UTC 比 GMT更精准,以原子时计时,适应现代社会的精确计时。

但在不需要精确到秒的情况下,二者可以视为等同。

每年格林尼治天文台会发调时信息,基于UTC。

本地时间

在日常生活中所使用的时间我们通常称之为本地时间。这个时间等于我们所在(或者所使用)时区内的当地时间,它由与世界标准时间(UTC)之间的偏移量来定义。这个偏移量可以表示为 UTC- 或 UTC+,后面接上偏移的小时和分钟数。

为了方便比较,图中黑色背景的是 中国(China)区电脑,白色主题背景的是美国(US)区电脑)

2023-06-27T14:00:00.000Z

这种带有T,Z 的是世界标准时间,其中Z表示默认时区(下面两部电脑显示,用的是当前所在地的时区)
在这里插入图片描述
在这里插入图片描述

二、实际案例

表单填写后传给后端的时间格式(Moment Timezone 方式)

Moment Timezone 中文文档
Moment Timezone 官方英文文档
安装:

pnpm install moment-timezone

使用: 在这里插入代码片
如果只考虑高版本浏览器
Intl.DateTimeFormat().resolvedOptions().timeZone , 可以获取时区name
在这里插入图片描述
下面 moment-timezone 写一个function

import moment from 'moment-timezone'
export const formatByMomentTimezone = (time) => {
  console.log('Time:', time)
  // set true:not get Cache
  let timezoneName = moment.tz.guess(true)
  // 首先调用 Intl.DateTimeFormat().resolvedOptions().timeZone
  console.log('timezoneName', timezoneName)
  const resDate = moment.tz(time, timezoneName)?.format()
  return resDate || ''  //
}

案例用的是element plus 的 datetime 组件,所以入参为下面中国标准时间,当然也支持 YYYY-MM-DD 等格式,详情请看文档;
在这里插入图片描述

拿到时间字段回显

后端返回的是带时区的时间格式:
2023-06-27T03:35:10.2828821+00:00
这里案例后端都处理成+00:00 的时区, 如果没有处理,可以用moment-timezone 处理显示;

const formatDateTime = (time) => {
  const date = new Date(time)
  const YY = date.getFullYear() + '-'
  const MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
  const DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
  const hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
  const mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
  const ss = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
  return YY + MM + DD + ' ' + hh + mm + ss
}

formatDateTime('2023-06-27T03:35:10.2828821+00:00')
'2023-06-27 11:35:10'

在中国区电脑验证:

在这里插入图片描述

在美国时区电脑验证:

在这里插入图片描述

转换为GMT时间后,取对应的 年 、月,日。

总结

认识基本时间表示字符,UTC,GMT等,用 moment-timezone 这个插件来获取时区,同时获取带时区的时间字段,以便后续业务处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

正确认识:DOTA-E[c(RGDyK)2],DOTA标记序列多肽,双环肽螯合物

试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; DOTA-E[c(RGDyK)2]为双环肽螯合物&#xff0c;DOTA标记序列多肽&#xff0c;螯合物前体多肽&#xff1a;放射性金属元素&#xff0c;例如&#xff1a; Cu、 Ga、 Lu、等可以通过与…

0基础入门---第四章---神经网络的学习

&#x1f31e;欢迎来到深度学习的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff…

【突发小技巧】手动将jar包导入本地Maven仓库

1、下载jar包 以支付宝sdk为例&#xff1a;https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java/4.33.12.ALL 后面执行mvn install命令(也就是安装命令&#xff0c;生命周期&#xff1a;编译、测试、打包、安装)&#xff0c;也会参考这个依赖坐标&#xff1a; …

前端安全 - 保护你的应用免受攻击的关键

80. 前端安全 - 保护你的应用免受攻击的关键 作为前端工程师&#xff0c;我们不仅需要关注用户界面的设计和功能实现&#xff0c;还需要关注应用程序的安全性。前端安全是保护我们的应用程序免受恶意攻击和数据泄露的重要方面。本文将介绍前端安全的概念、常见的安全威胁以及一…

Linux集群服务器上运行命令的4个实用工具

目录 1. PSSH-Parallel SSH 安装parallel-ssh&#xff0c; 使用 2. Pdsh-并行远程Shell实用程序 3. ClusterSSH 安装 4. Ansible 我们假设你已经设置好了SSH以便访问所有服务器;其次假设&#xff0c;同时访问多台服务器时&#xff0c;在所有Linux服务器上设置基于密钥的无…

clone浅拷贝

通过一个实例对象 生成另一个对象&#xff0c;称为 拷贝。 需要 实现 java.lang.Cloneable 该接口是一个 标记接口 通过调用 clone() 方法&#xff0c;完成 对象拷贝。该方法是Object类中的方法&#xff0c;所有对象都继承该方法。 clone()方法是 浅拷贝&#xff0c;也就是 只…

Vue+vite创建项目关于vite.config.js文件的配置

Vuevite创建项目关于vite.config.js文件的配置 Vue项目创建时&#xff0c;我们见过vue-cli 创建项目和webpack 创建项目等方式。 现在Vue 3版本使用npm/pnpm create vuelatest 创建项目&#xff0c;是搭配使用vite工具构建的。 创建完成的项目&#xff0c;最明显的去别就是&am…

【硬件自动化软件设计及实现】如何设计并实现!

今天来聊聊关于硬件方向的自动化软件设计及实现,后面我会用实例来让我们更加深入的了解硬件自动化,首先开发工具选择的是python语言,为啥选择python语言呢,因为他的语法比较简洁,外置库非常多,反正就是对于做自动化方面很实用就对了。 1.硬件自动化测试大致分为三个阶段实…

Redis 来了,Navicat 用户炸开了锅 | 文末附免单王获奖名单

近期&#xff0c;Navicat 的后台热闹无比&#xff01;自 2023 年 5 月 Navicat Premium 16.2 Beta 中文版上线以来&#xff0c;童鞋们的留言如潮水般涌来。6 月中旬&#xff0c;我们正式发布了 Navicat Premium 16.2 与 Navicat for Redis&#xff0c;赋予了Navicat 更卓越的功…

JMeter工具接口性能压力测试分析与优化

目录 前言&#xff1a; 一、具体测试结果如下&#xff1a; 二、初始应用配置调整&#xff1a; 三、分析解决过程&#xff1a; 总结&#xff1a; 前言&#xff1a; 最近公司做的项目&#xff0c;要求对相关接口做性能压力测试&#xff0c;在这里记录一下分析解决过程。 压…

[Pytorch]导数与求导

文章目录 导数与求导一. 标量 向量 矩阵 的导数二.Pytorch中的反向求导.backward()三.非标量求导 导数与求导 一. 标量 向量 矩阵 的导数 标量&#xff0c;向量&#xff0c;矩阵间求导后的形状&#xff1a; y\x标量x(1)向量 x(n,1)矩阵 X(n,k)标量y(1)(1)(1,n)(k,n)向量 y(m…

Unity Image/GL实现一个框选功能吧

场景准备 准备一张框选背景图 导入到unity之后&#xff0c;修改 Texture Type 为 Sprite&#xff0c;&#xff08;根据图片需要&#xff09;在 Sprite Editor 中 编辑 九宫格格式。图片样式的不一致&#xff0c;设置的九宫格格式也不一致。本例中虚线部分需要等距离平铺&…

Visual C++类的继承及类中成员的访问特性——搞懂public、protected、private

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来说说Visual C中类的继承及类中成员的访问特性&#xff0c;也就是来搞懂public、protected、private这三个东西。 很多人搞不清楚这三个东西&#xff0c;并且很容易弄错&#xff0c;其实不是学习的人的…

vr全景在线虚拟展馆节约企业成本费用

博物馆作为人们了解历史、文化和艺术的重要场所&#xff0c;现在可以通过VR全景技术来进行展览&#xff0c;让参观者身临其境地感受历史文化的魅力。本文将介绍博物馆VR全景的特点、优势&#xff0c;以及如何使用VR全景技术来使得博物馆的展览和教育活动更丰富。 参观者可以对内…

【Linux】权限理解

Linux权限理解 shell外壳运行原理为什么我们不是直接访问操作系统&#xff1f;外壳程序的意义 权限的概念与操作用户的权限如何进行Linux下用户身份的切换? 角色和文件的权限权限是什么&#xff1f;Linux中文件的类型是如何被确定的&#xff1f;权限与角色的关系权限与文件属性…

玩机搞机---修改系统固件不开机 安卓13去除系统app签名验证的几种方法

谷歌在安卓13中对系统应用添加了一层校验验证&#xff0c;你如果修改了系统app.那么原有的签名加载后过不去验证&#xff0c;会导致进不去系统卡第一屏或者进入系统后修改的app错误等等故障。 Android 13增加了新的apk签名校验机制&#xff0c;现在开机中它会对所有系统分区&a…

Hive中怎样创建和查询视图信息?

视图是从数据库的数据表中选取出来的数据组成的逻辑窗口&#xff0c;它是一个虚拟机表。引入视图后&#xff0c;用户可以将注意力集中在关心的数据上&#xff0c;如果数据来源于多个基本表结构&#xff0c;并且搜索条件比较复杂时&#xff0c;需要编写的查询语句就会比较烦琐&a…

hivesql 将数据处理成复杂json

类型一 原数据&#xff1a;bankid是array类型 目标数据&#xff1a; {"bankname": ["SPDB", "WS_HBBANK", "mytest"],"grid": [{"name": "阶段1","values": ["38.0,1.0,1.0"]}…

安全生产月评选活动-优秀的“安全之星”,塑造榜样力量

安全生产月评选活动-优秀的“安全之星”&#xff0c;塑造榜样力量。 推荐功能&#xff1a;投票 企业可以举办安全生产月评选活动&#xff0c;选出优秀的“安全之星”&#xff0c;进行内部评选&#xff0c;塑造榜样力量。 首先&#xff0c;让我们先来了解一下“安全生产月评选活…

MYSQL各种log

本章纲要 1、mysql主从复制是怎么实现的&#xff08;binlog,relaylog&#xff09; 2、事物执行原理是怎么保证ACID的&#xff08;redolog,undolog&#xff09; 一、Mysql是怎么实现主从复制的 数据库主从设计的好处&#xff1a; 1、实现读写分离&#xff0c;方便扩展&#…