2010-05-17 67 views
17

目前我儲存的時間在我的數據庫,像這樣:2010-05-17 19:13:37將TIMESTAMP轉換爲PHP中的unix時間?

不過,我需要比較兩個時間,我覺得它會更容易做,如果它是一個Unix時間戳,如1274119041。 (這兩個不同)

那麼我怎樣才能將時間戳轉換爲unix時間戳?有一個簡單的PHP功能嗎?

回答

27

您正在尋找strtotime()

+0

感謝這並獲得成功......但..對於somereason MySQL的NOW()是發佈與TIME()不同的時間。有關於此的任何想法? – Rob 2010-05-17 16:12:02

+0

meh,沒關係。我爲time()設置了一個變量,並將其插入數據庫而不是NOW()。不管怎麼說,還是要謝謝你 – Rob 2010-05-17 16:30:40

9

你想strtotime

print strtotime('2010-05-17 19:13:37'); // => 1274123617 
3

如果你使用MySQL作爲數據庫,它可以返回日期字段作爲UNIX與UNIX_TIMESTAMP時間戳:

SELECT UNIX_TIMESTAMP(my_datetime_field) 

您也可以在PHP端使用strtotime

strtotime('2010-05-17 19:13:37'); 
2

如果你把時間存儲在數據庫中,爲什麼不讓數據庫也給你它的unix時間戳?見UNIX_TIMESTAMP(date),例如。

SELECT UNIX_TIMESTAMP(date) ...; 

數據庫還可以做日期和時間的比較和算術。

4

獲得一個unixtimestamp:

$unixTimestamp = time(); 

轉換到MySQL日期時間格式:

$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp); 

獲取一些MySQL的時間戳:

$mysqlTimestamp = '2013-01-10 12:13:37'; 

將其轉換爲unixtimestamp:

$unixTimestamp = strtotime('2010-05-17 19:13:37'); 

...它有一個或一系列的時間比較,看看如果用戶輸入一個現實的時間:

if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15")) 
{...} 

Unix的時間戳是更安全了。你可以做以下檢查一個網址傳遞變量是有效,檢查(例如)先前的範圍檢查前:

if(ctype_digit($_GET["UpdateTimestamp"])) 
{...}