PHP strtotime 函數基本語法
int strtotime ( string $time , int $now = time() )
strtotime 的第一個參數 string $time 是字串格式,可以接受非常多種日期的字串格式,可參考 PHP 官方網站上的這篇《Supported Date and Time Formats》所提到的日期格式,第二個參數則是選填項目,用來計算返回的時間戳,如果未設定,strtotime 會自動根據目前的時間戳來計算,不過這個算是進階功能,普通情況不太會用到。如果 PHP strtotime 成功將日期字串轉換為 Unix 時間戳便會返回 timestamp 結果,如果失敗就會返回 FALSE,在 PHP 5.1.0 之前的版本,轉換失敗會返回 -1 而不是 FALSE,使用時請多注意使用的主機 PHP 版本。
PHP strtotime 函數範例一、基本轉換
<?php
$NowTime=date("Y-m-d H:i:s");
echo strtotime("$NowTime,now"), "<br>";
echo strtotime("now"), "<br>";
echo strtotime("10 September 2014"), "<br>";
echo strtotime("+1 day"), "<br>";
echo strtotime("+1 week"), "<br>";
echo strtotime("+2 week 3 days 2 hours 5 seconds"), "<br>";
echo strtotime("next Thursday"), "<br>";
echo strtotime("last Monday"), "<br>";
?>
輸出結果$NowTime=date("Y-m-d H:i:s");
echo strtotime("$NowTime,now"), "<br>";
echo strtotime("now"), "<br>";
echo strtotime("10 September 2014"), "<br>";
echo strtotime("+1 day"), "<br>";
echo strtotime("+1 week"), "<br>";
echo strtotime("+2 week 3 days 2 hours 5 seconds"), "<br>";
echo strtotime("next Thursday"), "<br>";
echo strtotime("last Monday"), "<br>";
?>
1412738569
1412738569
1410307200
1412824969
1413343369
1414214574
1412812800
1412553600
範例一提供各式各樣的英文日期格式給 strtotime 函數處理,原則上這些格式都是 strtotime 函數所接受的,特別注意從 +1 day 開始的地方,可以明顯的看到 PHP strtotime 強大的地方,它會自己計算我們所賦予的時間差,無論是 +1 天、+1 周,甚至是 + 幾周、幾天、幾小時、幾秒鐘,strtotime 都可以順利算出並轉換為我們所要的 Unix 時間戳,還有哪些格式可以用?請參閱上段提到 PHP 官方網站的內容。1412738569
1410307200
1412824969
1413343369
1414214574
1412812800
1412553600
PHP strtotime 函數範例二、來回轉換
<?php
$t='2014-10-18 11:17:23';
echo $t.'<br>';
echo strtotime($t).'<br>';
echo date("Y-m-d H:i:s",strtotime($t)).'<br><br>';
$t2='October 18 2014 11:17:23AM';
echo $t2.'<br>';
echo strtotime($t2).'<br>';
echo date("Y-m-d H:i:s",strtotime($t2));
?>
輸出結果$t='2014-10-18 11:17:23';
echo $t.'<br>';
echo strtotime($t).'<br>';
echo date("Y-m-d H:i:s",strtotime($t)).'<br><br>';
$t2='October 18 2014 11:17:23AM';
echo $t2.'<br>';
echo strtotime($t2).'<br>';
echo date("Y-m-d H:i:s",strtotime($t2));
?>
2014-10-18 11:17:23
1413631043
2014-10-18 11:17:23
October 18 2014 11:17:23AM
1413631043
2014-10-18 11:17:23
為了讓各位可以清楚的看出來 PHP strtotime 函數轉換的結果,我們用了兩組不同的時間格式讓它轉換,第一種是比較常見的時間格式,先轉換為 Unix 時間戳,再用 PHP date 函數轉換回來,結果是一樣的。接著第二組的時間格式比較特別,用的是美式時間格式,經過 strtotime 函數的處理,取得了相同的 Unix 時間戳,再用 PHP date 函數轉換回來,可以獲得與第一組相同的時間,證明 PHP strtotime 函數在處理不同的時間格式時(必須為可接受的格式),可以順利轉換為正確的 Unix 時間戳。1413631043
2014-10-18 11:17:23
October 18 2014 11:17:23AM
1413631043
2014-10-18 11:17:23
更多 PHP 時間計算