strtotime

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

strtotime -- 將任何英文文字的日期時間描述解析為 Unix 時間戳

說明

int strtotime ( string time [, int now] )

本函數預期接受一個包括美國英語日期格式的字串並嘗試將其解析為 Unix 時間戳(自 January 1 1970 00:00:00 GMT 起的秒數),其值相對於 now 參數給出的時間,若果沒有提供此參數則用系統現用的時間。

本函數將使用 TZ 環境變量(若果有的話)來計算時間戳。自 PHP 5.1.0 起有更容易的方法來定義時區用於所有的日期/時間函數。此過程在 date_default_timezone_get() 函數頁面中有說明。

注: 若果給定的年份是兩位數字的格式,則其值 0-69 表示 2000-2069,70-100 表示 1970-2000。

參數

time

被解析的字串,格式根據 GNU Date Input Formats 語法

now

用來計算返回值的時間戳

返回值

成功則返回時間戳,否則返回 FALSE。在 PHP 5.1.0 之前本函數在失敗時返回 -1

更新日誌

版本說明
5.1.0 失敗時返回 FALSE,不再是 -1

範例

例子 1. strtotime() 例子

<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?>

例子 2. 失敗檢查

<?php
$str 
'Not Good';

// previous to PHP 5.1.0 you would compare with -1, instead of false
if (($timestamp strtotime($str)) === false) {
    echo 
"The string ($str) is bogus";
} else {
    echo 
"$str == " date('l dS of F Y h:i:s A'$timestamp);
}
?>

注解

警示

在 PHP 5 中到 5.0.2 之前,"now" 和其它相對時間從今天午夜起錯誤計算了。這和正確從現用的時間起計算的其它版本不同。

注: 有效的時間戳通常從 Fri, 13 Dec 1901 20:45:54 GMT 到 Tue, 19 Jan 2038 03:14:07 GMT(對應於 32 位有符號整數的最小值和最大值)。不是所有的平台都支援負的時間戳,那麼日記範圍就被限制為不能早於 Unix 紀元。這意味著在 1970 年 1 月 1 日之前的日期將不能用在 Windows,一些 Linux 版本,以及幾個其它的動作系統中。不過 PHP 5.1.0 及更新的版本克服了此限制。

參見

strptime()