溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ECSHOP時(shí)間戳轉(zhuǎn)換差8小時(shí)怎么辦

發(fā)布時(shí)間:2021-11-24 10:11:22 來(lái)源:億速云 閱讀:212 作者:小新 欄目:網(wǎng)絡(luò)安全

這篇文章給大家分享的是有關(guān)ECSHOP時(shí)間戳轉(zhuǎn)換差8小時(shí)怎么辦的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

ecshop直接保存日期然后通過(guò)date()將時(shí)間戳轉(zhuǎn)時(shí)年月日,會(huì)存在一個(gè)8小時(shí)誤差問(wèn)題,后臺(tái)有設(shè)置時(shí)間,正常不二次開發(fā)時(shí)間顯示都經(jīng)過(guò)處理,不會(huì)出問(wèn)題.

由于自己寫了PHP代碼需要調(diào)用日期,直接讀取的時(shí)期則少了8小時(shí),早上8點(diǎn)前記錄的時(shí)間將全部歸到前一天的日期上.

解決方法:

date(‘Y-m-d’,$row['add_time'])

換成

local_date(‘Y-m-d’, $row['add_time']);

可以是ECSHOP的統(tǒng)一設(shè)定時(shí)間格式:

local_date($GLOBALS['_CFG']['date_format'], $row['add_time']);

以下網(wǎng)上搜索資料,擴(kuò)展閱讀:

PHP時(shí)間大的來(lái)分有兩種,一是時(shí)間戳類型(1228348800),二是正常日期格式(2008-12-4)

所以存到數(shù)據(jù)庫(kù)也有兩種形式了(真正不止,我的應(yīng)用就兩種),時(shí)間戳類型我是保存為字符串的,這個(gè)是比較方便的.

正常日期類型是保存為DATE型的.

這兩個(gè)要注意一下,我平時(shí)用兩種,所以,前幾天建的表,把時(shí)間類型存為DATE的,我還一直用時(shí)間戳保存,一直資料寫不進(jìn)表,調(diào)試了好久的才知錯(cuò)誤之處,是類型不符合,不給寫入庫(kù).

像上面的時(shí)間戳是比較方便,但,顯示的時(shí)候,不至于把這個(gè)1228348800串給客戶看吧,GOD NOWS!

所 以就用到了這兩個(gè)的轉(zhuǎn)換,先說(shuō)一下如何取得當(dāng)前的時(shí)間戳,$date1=time();這樣就取得當(dāng)前的時(shí)間戳了,要轉(zhuǎn)回2008-12-4這種格式呢, 用到date()這個(gè)函數(shù)了,在PHP中date()函數(shù)比較常用,如取得當(dāng)前日期,可以用$date2=date(‘Y-m-d’);,關(guān)于里面參數(shù)的 意思,如不懂就查一下php的手冊(cè)了.

好,言歸正傳,把1228348800轉(zhuǎn)成2008-12-4格式代碼如下:

$date3=date(‘Y-m-d H:i:s’,”1228348800″);

這樣就OK了,如還想得到小時(shí),分鐘秒,只要把’Y-m-d’改一下就可以了,不過(guò)要注意一下,PHP時(shí)間還像有8個(gè)小時(shí)的誤差.加上就OK了.

時(shí)間戳轉(zhuǎn)正常日期有了,反之呢,把正常日期格式轉(zhuǎn)為時(shí)間戳呢,請(qǐng)看如下代碼:

$year=((int)substr(“2008-12-04″,0,4));//取得年份

$month=((int)substr(“2008-12-04″,5,2));//取得月份

$day=((int)substr(“2008-12-04″,8,2));//取得幾號(hào)

echo mktime(0,0,0,$month,$day,$year);

這樣就能把正常日期轉(zhuǎn)成時(shí)間戳了,這里如果有時(shí)分秒也是同理,

注意:php5.1以上時(shí)間戳?xí)c實(shí)際時(shí)間相差8小時(shí),解決辦法如下
1、最簡(jiǎn)單的方法就是不要用php5.1以上的版本–顯然這是不可取的方法?。?!

2、修改php.ini。打開php.ini查找date.timezone 去掉前面的分號(hào)= 后面加Asia/Shanghai,重啟apache服務(wù)器即可–缺點(diǎn)就是如果程序
放到別人的服務(wù)器上,不能修改php.ini,那就奈何不得了。

3、在程序中添加時(shí)間的初始化的語(yǔ)句的 即:“date_default_timezone_set(“Asia/Shanghai”); ”這個(gè)可以由程序員任意設(shè)置,我的推
薦。
時(shí)區(qū)標(biāo)識(shí)符,大陸內(nèi)地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為中國(guó),重慶,上海,烏魯木齊) ,Etc/GMT-8,Asia/Harbin
港臺(tái)地區(qū)可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺(tái)北)
還有新加坡:Asia/Singapore
澳大利亞:Australia/Sydney

感謝各位的閱讀!關(guān)于“ECSHOP時(shí)間戳轉(zhuǎn)換差8小時(shí)怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI