前言
在做跨境电商项目的时候,遇到一个设置广告营销的跨时区的时间不匹配导致广告不能同步的问题,所以就想着如何解决。
相看到这个标题就会想到用时间戳解决这个问题,我一开始也是用的时间戳直接格式化的时间,(时间戳在全时间每个时区都是相同的),但是这样会有一个问题,就是你的服务器在北京,这样你的项目在美国中部标准时区(西六区)访问转时间戳出来的时间还是北京时间(东八区)
出现这个问题的原因是我用得moment.js换的时间,所以导致代码在哪里就转的那个时间,后来就采用了指定时区的办法,就得已完美解决。
解决办法 我是引入了moment.js所以用这个方法
mounted() {
var offset = new Date() + ""; //将时间格式转为字符串
console.log(offset); // Mon Nov 02 2020 20:57:20 GMT-0600 (北美中部标准时间)
let asderf = offset.indexOf('GMT');
let fghdfgd = offset.substring(asderf+3,asderf+8);
console.log(fghdfgd); //-0600 //拿到这个-0600也就是当前所在时区,然后转时间戳的
this.current_time = fghdfgd; //给了你定义的一个字段,在拿到数据后使用
},
methods:{
getdata(){
//拿到数据后 launchStartTimeStamp 这个就是时间戳
//utcOffset('+0800')指定时区 东八区
let time = this.moment(launchStartTimeStamp).utcOffset(this.current_time).format('YYYY-MM-DD HH:mm:ss');
//这个就是转换为指定时区的时间了。
}
}
结束语
以后遇到也需要获取指定时区的时间就可以用这个办法