PHP date("Y-m-d H:i:s");擷取目前時間 差8小時解決辦法(轉)
PHP date("Y-m-d H:i:s");擷取目前時間 差8小時解決辦法
(轉)http://subin.org.cn/blog/post/430.html
原因:?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
??????? 從php5.1.0開始,php.ini裡加了date.timezone這個選項,並且預設情況下是關閉的也就是顯示的時間(無論用什麼php命令)都是格林威治標準時間和我們的時間(北京時間)差了正好8個小時。
??????? 關於timezone 大陸內地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi ,PRC(依次為重慶,上海,烏魯木齊,中華人民共和國)港台地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,台北)還有新加坡:Asia/Singapore其它:Etc/GMT-8 ,Singapore ,Hongkong
解決方案一:
??????? 再添加時間前 插入:CODE:(好像不用加)?date_default_timezone_set(PRC);
解決方案二:
??????? echo date("Y-m-d H:i:s",?time()+8*60*60);
解決方案三(修改php.ini檔案):
??????? 找到php.ini中的“;date.timezone =”這行,將“;”去掉,改成“date.timezone = PRC”(PRC:People's Republic of China 中華人民共和國),重啟Apache,問題解決。
?
附:date時間格式
date("Y-m-d H:i:s"); 顯示的格式: 年-月-日 小時:分鐘:秒
相關時間參數:
a - "am" 或是 "pm"?
A - "AM" 或是 "PM"?
d - 幾日,二位元字,若不足二位則前面補零; 如: "01" 至 "31"?
D - 星期幾,三個英文字母; 如: "Fri"?
F - 月份,英文全名; 如: "January"?
h - 12 小時制的小時; 如: "01" 至 "12"?
H - 24 小時制的小時; 如: "00" 至 "23"?
g - 12 小時制的小時,不足二位不補零; 如: "1" 至 12"?
G - 24 小時制的小時,不足二位不補零; 如: "0" 至 "23"?
i - 分鐘; 如: "00" 至 "59"?
j - 幾日,二位元字,若不足二位不補零; 如: "1" 至 "31"?
l - 星期幾,英文全名; 如: "Friday"?
m - 月份,二位元字,若不足二位則在前面補零; 如: "01" 至 "12"?
n - 月份,二位元字,若不足二位則不補零; 如: "1" 至 "12"?
M - 月份,三個英文字母; 如: "Jan"?
s - 秒; 如: "00" 至 "59"?
S - 字尾加英文序數,二個英文字母; 如: "th","nd"?
t - 指定月份的天數; 如: "28" 至 "31"?
U - 總秒數?
w - 數字型的星期幾,如: "0" (星期日) 至 "6" (星期六)?
Y - 年,四位元字; 如: "1999"?
y - 年,二位元字; 如: "99"?
z - 一年中的第幾天; 如: "0" 至 "365"