国际化时区

当服务器和使用者不在同一个国家的时候就需要进行时间转换,转 换到对应国家的时间。

怎么转换?先了解几个概念

格林威治时间(GMT)

是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线

协调世界时(UTC)

协调世界时(英语:Coordinated Universal Time简称UTC)是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间

协调世界时是世界上调节时钟和时间的主要时间标准,它与0度经线的平太阳时相差不超过1秒[4],并不遵守夏令时。协调世界时是最接近格林威治标准时间(GMT)的几个替代时间系统之一。对于大多数用途来说,UTC时间被认为能与GMT时间互换,但GMT时间已不再被科学界所确定

时间戳

自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数,也被称为 Unix 时间戳(Unix Timestamp)。Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。 所以时间戳对于任何一个地方都是固定的

时区

由于世界各国家与地区经度不同,地方时也有所不同,因此会划分 为不同的时区

方案:

使用时间戳存储,时间戳每个地方都是一样的,可以通过当 地的时区转化为当地的时间

1.列表的时间后端返回时间戳,前端进行转化为当地的时间

2.搜索框的时间前端转化成时间戳传给后端

3.导出的时间,前端需要传参当地的时区给后端,后端直接转换成 当地的时间进行导出

获取时区

Intl.DateTimeFormat().resolvedOptions().timeZone

各个国家的时区 https://www.zeitverschiebung.net/cn/country/cn#timezones

获取时区偏移量

new Date().getTimezoneOffset() / 60 // -8

getTimezoneOffset() 方法可以返回 UTC 相对于当前时区的相差分钟数,除以 60 就得到了小时的偏移量 我们是东八区,所以得到的值是 -8

时间和时间戳转换

var date = new Date(); // 当前时间

var timestamp = date.getTime(); // 获取时间戳

console.log(timestamp);

var timestamp = timestamp // 时间戳

var date = new Date(timestamp); // 创建Date对象

console.log(date);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值