接下來開始比較日期
使用函數 strtotime
基本上這樣就可以了,但是若是使用XAMPP,上面的語法可能會出現錯誤,原因在於 Y2K38漏洞,也被稱為Unix Millennium Bug,也就是 strtotime 只認得 2038-1-19 03:14:07 之前的日期時間,在此日期時間後的就會溢位,進而產生錯誤。
- $Date1 = date('Y-m-d');
- $Date2 = '9999-12-31';
- if(strtotime($Date1) > strtotime($Date2)) {
- echo 'Date1 較新';
- }
- else {
- echo 'Date2 較新';
- }
所以將語法修改如下,順便用了 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 較新';
- }
沒有留言:
張貼留言