訣竅操縱和在PHP比較日期和時間是存儲的日期/時間值的整數變量,並使用mktime(),日期()和的strtotime()函數。日期/時間的整數表示是自1970年1月1日午夜以來的秒數,其被稱爲「時代」。一旦你的日期/時間是整數形式,你就可以有效地將它與其他也是整數形式的日期進行比較。
當然,因爲你很可能會被從頁面的請求和數據庫接收的日期/時間值中選擇你需要的日期/時間字符串轉換爲整數,你可以做任何比較或算術之前查詢。
假設您確定$ resttimefrom和$ resttimeto變量包含格式正確的時間,您可以使用strtotime()函數將字符串時間轉換爲整數。 strtotime()接受格式化爲日期的字符串,並將其轉換爲自epoch以來的秒數。
$time_from = strtotime($resttimefrom);
$time_to = strtotime($resttimeto);
附註:strtotime()總是返回整數形式的完整日期。如果你的字符串沒有日期,只有一次,strtotime()返回今天的日期以及你在字符串中給出的時間。然而,這對你並不重要,因爲strtotime()返回的兩個日期將具有相同的日期,並且比較這兩個變量將具有期望的效果,即在日期相互抵消時比較兩次。
當您比較兩個整數時請記住,日期/時間越早,其整數值越小。所以,如果你想看看是否$ time_from低於$ time_to早,你有這樣的:
if ($time_from < $time_to)
{
// $time_from is ealier than $time_to
}
我們的日期/時間與當前系統日期/時間比較,只需使用mktime()不帶參數表示當前日期/時間:
if ($time_from < mktime())
{
// $time_from is in the past
}
由於其簡單的邏輯! – Rajasekar 2010-08-04 10:10:37
可能重複的[PHP的比較日期](http://stackoverflow.com/questions/2113940/php-compare-date) – Kuf 2013-01-24 17:00:25
這是因爲$ resttimefrom和$ resttimeto沒有定義 – Black 2015-11-05 09:57:22