我想獲取時間戳,看到有兩個方法mktime()和gmmktime(),一個是獲取本地的時間戳,一個是UTC的時間戳,我打印出來後,時間戳是一樣的,不是應該相差8小時麼,本地的時間戳是北京時間.有能夠解釋一下的麼?
我想獲取時間戳,看到有兩個方法mktime()和gmmktime(),一個是獲取本地的時間戳,一個是UTC的時間戳,我打印出來後,時間戳是一樣的,不是應該相差8小時麼,本地的時間戳是北京時間.有能夠解釋一下的麼?
恕我孤陋寡聞,時間戳不都是UTC嗎,格式化之後才得到本地時間吧。
看了一下,這兩個函數的不同是對傳入的參數的處理。 mktime
預設是本地時間,gmmktime
預設是格林尼治時間(GMT)。
例如上面的其他答案的例子,mktime(1,50,15,4,15,2012)
返回的是本地時間2012年4月15日1時50分15秒的時間戳,gmmktime (1,50,15,4,15,2012)回傳的是
GMT 2012年4月15日1時50分15秒的時間戳,所以自然結果不同。
時區是透過php.ini裡的
date.timezone選項,或是呼叫
date_default_timezone_set函數來設定。
當前時間,自然就一樣了(就算你設定了時區,時間戳還是基於UTC的,所以還是一樣)。
如果你只是想取得當前時間戳,建議用time函數。上面的兩個函數主要是用來取得特定的本地時間或GMT對應的時間戳記的。
是參數錯誤還是怎麼的,我這邊正常
<code><?php echo mktime(1,50,15,4,15,2012); echo '<br>'; echo gmmktime(1,50,15,4,15,2012); </code>
本地PHP有設定東八區時間嗎
http://www.cnblogs.com/mxw09/...
這個連結應該要解釋的很清楚了
<code><?php $ltime = mktime(0,0,0,1,1,1990); $gtime = gmmktime(0,0,0,1,1,1990);</code>
不然預設傳入之後會轉換導致相同.