time()取得是伺服器的時間,那麼在中國,和美國取得時間是一樣的嗎?因為開發出了個問題,商品團購活動在中國已經結束,但是國外還能購買,所有時間用的都是時間戳,資料庫的開始時間是一致的,難道是time()的問題?
time()取得是伺服器的時間,那麼在中國,和美國取得時間是一樣的嗎?因為開發出了個問題,商品團購活動在中國已經結束,但是國外還能購買,所有時間用的都是時間戳,資料庫的開始時間是一致的,難道是time()的問題?
時間戳記是 從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。
所以,這個值與時區無關,與時區有關的是時間,例如1471827600是北京時間(2016-08-22T09:00,東8區),那麼同樣的時間戳在東區的時間䪱炯2016-08-22T08:00。
上下樓答案都對, 時間戳與時區無關. 但是時間戳轉化成日期時間格式時, 與時區有關. 之前答案錯誤... 為誤導題主道歉.
<code class="php">$time = time(); date_default_timezone_set('America/Los_Angeles'); echo time() . PHP_EOL; echo date('Y-m-d H:i:s', $time) . PHP_EOL; date_default_timezone_set("UTC"); echo time() . PHP_EOL; echo date('Y-m-d H:i:s', $time) . PHP_EOL;</code>
time()
獲得的是時間戳,而時間戳是無時區的,都是統一採用格林尼治時間。所以除非你兩台伺服器本身的伺服器時間就不一致,不然得到的time()
是一致的。
時區不一樣啊
統一時區,為UTC,我也遇過
函數time()獲取的是時間戳,是沒有時區概念的.
但是如果你用國內外2台服務器,設置同一個時間戳開始售賣,同一時間戳結束售賣,那麼國內開始的時候,國外的網站是沒有開始的,(推測的依據是題主說國內結束國外還沒有結束,而售賣持續的時間一樣)因為時間戳轉換為時間就有了時區的概念,所以如果要同時售賣,同時結束,你需要將兩地的時間換算成格林威治標準時間(時間戳的由來),然後得到不同的時間戳,加上你想要持續的售賣時間就可以了.