前言
不同国家的电脑时区获取出来的时间戳是不一样的,后端的查询接口需要东八区的时间戳,所以我这边要把所有时区的时间戳都转换为东八区,下面是我遇到的一个需要通过moment包处理东八区转换时间戳的解决方法。
需求
根据时间选择器时间戳筛选指定日期数据,不同的时区也要转换为东八区时间戳进行筛选。
电脑设置不同的时区
使用moment-timezone包转换东八区时间
官方中文文档:momentjs.cn/timezone/do…
下载moment-timezone包
npm i moment-timezone
引入moment包
import moment from 'moment-timezone';
获取指定日期的开始时间戳
这里的
startTime值可以改为自己时间选择器的开始时间
const startTime = new Date();
const startTimeData = moment.tz(moment(startTime).format('YYYY-MM-DD'), 'Asia/Shanghai').valueOf();
console.log(startTimeData);//转换后的东八区时间戳
获取指定日期的结束时间戳
const endTime = new Date();
const endTimeData = moment.tz(moment(endTime).endOf('day').format('YYYY-MM-DD H:m:s'), 'Asia/Shanghai').valueOf();
console.log(endTimeData);//转换后的东八区时间戳
moment.tz用法解释
将所在时间转换为指定时区的时间
moment.tz(时间,指定时区)
时间的格式要求是'YYYY-MM-DD H:m:s'或者'YYYY-MM-DD',所以我这边把所需要指定的时间戳转换成时间格式
打印本地时区方法
moment.tz.guess();
.valueOf()是用来获取时间戳的,想要时间格式的可以用format()
结语
通过上面的转换,现在本地无论切换哪个时区,最后都能获取都东八区的时间戳给后端啦~
如果你觉得此文对你有一丁点帮助,麻烦点个赞哈,谢谢大家。