的strtotime
你必須在PHP一些偉大的功能,以您的人類可讀的日期轉換爲時間戳。
第一個魔術函數叫做strtotime(字符串到時間):給它你的日期,你得到一個UNIX時間戳!讓我們看一些例子:
echo strtotime('2008-04-12 13:24');
echo strtotime('12 april 2008 13:24');
echo strtotime('12.04.2008 13:24');
而且功能更強大,的strtotime可以識別一些關鍵詞:
echo strtotime('now');
echo strtotime('+4 days');
echo strtotime('+1 month');
echo strtotime('next monday');
echo strtotime('+2 weeks 3 days 4 hours 23 minutes');
的strtotime的第二個參數是時間戳記,它的默認值是實際的時間戳(時間() )。所以回聲strtotime('+ 4天')是相對於當前時間。當然,你也可以給你的mysql日期strtotime! (注意你也可以使用mysql函數UNIX_TIMESTAMP,它使用更多的資源)。
比較日期,它現在只是一個細節:
// your first date coming from a mysql database (date fields)
$dateA = '2008-03-01 13:34';
// your second date coming from a mysql database (date fields)
$dateB = '2007-04-14 15:23';
if(strtotime($dateA) > strtotime($dateB)){
// bla bla
}
比子更好,不是嗎?!
這裏只是另一個例子,而不是相對於當前的日期,而是一個特定的日期:
strtotime('23 hours ago', strtotime('2005-04-13 14:00'));
這平均23小時前相對於第二給定的日期,它必須是一個時間戳。
用戶手冊未提供支持日期格式的完整說明。 Strtotime('dd/mm/YYYY')不起作用,它僅適用於mm/dd/YYYY格式。
dd/mm/YYYY格式的日期,可以通過使用explode()函數將其轉換爲YYYY-mm-dd,但我認爲有更好的解決方案。
$date = '25/05/2010';
$date = str_replace('/', '-', $date);
echo date('Y-m-d', strtotime($date));
這可以幫助.. – Linus
如果我做這樣的事情? $ date ='20'。$ date; – frosty
該函數預期會給出一個包含英文日期格式的字符串,並將嘗試將該格式解析爲Unix時間戳(自1970年1月1日00:00:00 UTC以來的秒數), – Linus