2012-07-05 44 views
0

現在我的查詢如下所示(相關部分):調整「NOW()」時區

UPDATE last_seen=NOW() 

但它插入時間爲2小時前,比我的。有什麼辦法可以調整它嗎?

謝謝

+1

的'NOW()'包含服務器的時區 – Alex 2012-07-05 20:53:27

+0

@ w0rldart是時間,但顯然我需要在這種情況下,調整它:) – Johan 2012-07-05 20:56:14

+0

更改服務器的時區。 – 2012-07-05 21:00:01

回答

0

聽起來像MySQL是不是在同一個時區,你。

你有一些選擇:

  • 設置MySQL的時區。
  • 使用PHP設置存儲前的日期。
  • 存儲爲UTC時間戳,然後顯示正確的當地時間。更多的代碼,但我建議。
+0

如果使用php日期函數,那麼'timestamp'的有效日期格式是什麼? – Johan 2012-07-05 20:58:41

+0

[閱讀](http://dev.mysql.com/doc/refman/5.5/en/datetime.html) – 2012-07-05 21:01:15

1

,我建議你去嘗試的東西,像這樣:

有一個hidden input收集用戶的時區

​​

然後更新之前得到它,並將它轉換成秒,像這樣

$offset = intval($_REQUEST['_offset']) * 60; 

最後將它添加到time()

$now = time() + $offset; 

通過以上操作,您的客戶在他的時區中的時間有一個變量。如果你不希望出現這種情況,想給大家一個共同的時間只設置這個時區在index.php

date_default_timezone_set('TIMEZONE IN HERE'); //Supported timezone list: http://www.php.net/manual/en/timezones.php 

但它的更好,如果你把它在你的php.ini(時區),或改變服務器時區(於Debian/Ubuntu:dpkg-reconfigure tzdata