有這麼一個需求,指定日期是12月12日,在12月12號前我要執行A事件,在其後要執行B事件,怎樣判斷今天是在12月12日的前還是後?
程式如下:
$month) || ($thismonth == $month && $thisday > $day) || $thisyear > $year) {echo '已經過了';} elseif ($thismonth == $month && $thisday == $day && $thisyear == $year) {echo '就是今天了';} else {echo '還沒到';}?>
下面是帶注釋的代碼:
//你還需要知道的另一個變數是年份,不過依你的意思應該是當年。$timestamp = time();$dateYear = date('Y', $timestamp);//當前年,依當前需要可以不需要比較,但有時也許會用到,比如你的記錄不是當年要處理的$dateMonth = date('n', $timestamp);//當前月份數字,沒有前置字元為零$dateDay = date('j', $timestamp);//月份中的第幾天,沒有前置字元為零//剩下的就是比較了,比如你要比較的日期是 2007-03-01$eventDate = '2007-03-01';$eventDateArr = explode('-', $eventDate);$eventYear = intval($eventDateArr[0]);$eventMonth = intval($eventDateArr[1]);$eventDay = intval($eventDateArr[2]);//上面是年月日的拆分,根據實際情況可以調整,如果你直接可以得到就不需要這樣取了。//之後剩下的就是比較了,先比較年if($dateYear == $eventYear) { //同年 if($dateMonth == $eventMonth) { //同月 if($dateDay == $eventDay) { //同一天,就是當前日期就是事件觸發的日期 } elseif($dateDay > $eventDay) { //事件已經到期了 } else { //事件觸發日期還沒到 } } else { //之前或之後,再需要詳細判斷可以在這裡比較哪個月份大 }} else { //之前或之後,再需要詳細判斷可以在這裡比較哪個年份大}//其實這種比較是最簡單的邏輯判斷,如果你在記錄時間觸發日期時記錄的是 unix 時間戳記,這裡可以直接進行時間戳記比較不過需要處理一下,因為時間戳記是精確到秒的//或者把你記錄的日期及其後一天直接轉化成 unix 時間戳記,時分秒都用 0 ,和目前時間戳比較,細節判斷就自己去分析吧,可用函數去查查手冊裡面 strtotime() ,時間相關函數參數很多,不過用過幾次就熟悉了。
http://www.bkjia.com/PHPjc/752485.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/752485.htmlTechArticle有這麼一個需求,指定日期是12月12日,在12月12號前我要執行A事件,在其後要執行B事件,怎樣判斷今天是在12月12日的前還是後? 程式如下...