前言
在做跨境電商項(xiàng)目的時(shí)候非洲,遇到一個(gè)設(shè)置廣告營(yíng)銷的跨時(shí)區(qū)的時(shí)間不匹配導(dǎo)致廣告不能同步的問(wèn)題,所以就想著如何解決就谜。
相看到這個(gè)標(biāo)題就會(huì)想到用時(shí)間戳解決這個(gè)問(wèn)題怪蔑,我一開始也是用的時(shí)間戳直接格式化的時(shí)間,(時(shí)間戳在全時(shí)間每個(gè)時(shí)區(qū)都是相同的)丧荐,但是這樣會(huì)有一個(gè)問(wèn)題,就是你的服務(wù)器在北京喧枷,這樣你的項(xiàng)目在美國(guó)中部標(biāo)準(zhǔn)時(shí)區(qū)(西六區(qū))訪問(wèn)轉(zhuǎn)時(shí)間戳出來(lái)的時(shí)間還是北京時(shí)間(東八區(qū))
出現(xiàn)這個(gè)問(wèn)題的原因是我用得moment.js換的時(shí)間虹统,所以導(dǎo)致代碼在哪里就轉(zhuǎn)的那個(gè)時(shí)間,后來(lái)就采用了指定時(shí)區(qū)的辦法隧甚,就得已完美解決车荔。
解決辦法 我是引入了moment.js所以用這個(gè)方法
mounted() {
var offset = new Date() + ""; //將時(shí)間格式轉(zhuǎn)為字符串
console.log(offset); // Mon Nov 02 2020 20:57:20 GMT-0600 (北美中部標(biāo)準(zhǔn)時(shí)間)
let asderf = offset.indexOf('GMT');
let fghdfgd = offset.substring(asderf+3,asderf+8);
console.log(fghdfgd); //-0600 //拿到這個(gè)-0600也就是當(dāng)前所在時(shí)區(qū),然后轉(zhuǎn)時(shí)間戳的
this.current_time = fghdfgd; //給了你定義的一個(gè)字段戚扳,在拿到數(shù)據(jù)后使用
},
methods:{
getdata(){
//拿到數(shù)據(jù)后 launchStartTimeStamp 這個(gè)就是時(shí)間戳
//utcOffset('+0800')指定時(shí)區(qū) 東八區(qū)
let time = this.moment(launchStartTimeStamp).utcOffset(this.current_time).format('YYYY-MM-DD HH:mm:ss');
//這個(gè)就是轉(zhuǎn)換為指定時(shí)區(qū)的時(shí)間了忧便。
}
}
結(jié)束語(yǔ)
以后遇到也需要獲取指定時(shí)區(qū)的時(shí)間就可以用這個(gè)辦法