前言
在做跨境電商項目的時候,遇到一個設置廣告營銷的跨時區的時間不匹配導致廣告不能同步的問題,所以就想著如何解決。
相看到這個標題就會想到用時間戳解決這個問題,我一開始也是用的時間戳直接格式化的時間,(時間戳在全時間每個時區都是相同的),但是這樣會有一個問題,就是你的服務器在北京,這樣你的項目在美國中部標準時區(西六區)訪問轉時間戳出來的時間還是北京時間(東八區)
出現這個問題的原因是我用得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');
//這個就是轉換為指定時區的時間了。
}
}
結束語
以后遇到也需要獲取指定時區的時間就可以用這個辦法