簡體   English   中英

PHP和MySQL中的當前時間戳

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM