接下來開始比較日期
使用函數 strtotime
$Date1 = date('Y-m-d'); $Date2 = '9999-12-31'; if(strtotime($Date1) > strtotime($Date2)) { echo 'Date1 較新'; } else { echo 'Date2 較新'; }基本上這樣就可以了,但是若是使用XAMPP,上面的語法可能會出現錯誤,原因在於 Y2K38漏洞,也被稱為Unix Millennium Bug,也就是 strtotime 只認得 2038-1-19 03:14:07 之前的日期時間,在此日期時間後的就會溢位,進而產生錯誤。
所以將語法修改如下,順便用了 php 5.2 版之後的語法
$Date1 = date_format(new DateTime(),'U'); // $Date2 = date_format(new DateTime('9999-12-31'),'U'); // 這邊需要注意因為 DateTime()會包含時間的部分,所以在比較時要同時加上時間的部分(或去除時間的部分)來比較會較正確, // 或是將 $Date2 多加一天後再比較也行,所以將 $Date2 修改一下 $Date2 = date_format(date_modify(new DateTime('9999-12-31'),'+1 days'),'U'); if($Date1 > $Date2) { echo 'Date1 較新'; } else { echo 'Date2 較新'; }
沒有留言:
張貼留言