[英]Current timestamp in PHP and MySQL
我使用PHP使用time()
打印當前時間戳,我有一個MySQL列存儲日期,我使用strtotime()
轉換為時間戳。 但是,當我打印轉換后的值時,它們之間有一個小時的差異。 真正的區別在於秒。 怎么了?
假設它們都運行在同一個物理服務器上,那么可能是時區不匹配。
您可以通過在MySQL控制台中運行以下查詢來檢查MySQL服務器上的時區:
SELECT @@global.time_zone;
在PHP頁面上運行腳本:
echo date_default_timezone_get();
一旦你弄清楚哪一個是錯的,你應該能夠通過編輯my.cnf或php.ini來解決這個問題。
您還可以使用date_default_timezone_set ()在運行時更改默認時區。
在插入時間之前設置您的時區
date_default_timezone_set('America/Los_Angeles'); // Whatever your timezone is
mysql_query("INSERT
INTO table
(date)
VALUES
(" . time() . ")") or die(mysql_error());
使用MySQL的UNIX_TIMESTAMP()
函數獲取當前的紀元時間:
INSERT INTO mytable SET tstamp = UNIX_TIMESTAMP();
您可能希望使用PHP strftime函數,因為它確實考慮了本地時區。 您可能遇到夏令時問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.