[[PHPめも]]

PHPにて1〜100と50〜150が重なっているか、また2016年4月1日〜2016年4月30日と2016年4月15日〜2016年5月15日が重なっているかなどを判定したい時に使えます。

日付の場合はUNIXTIMEに変換しておけば比較できます。

***数値の場合 [#i46cbb67]

 $start1 = 1;
 $end1 = 100;
 $start2 = 50;
 $end2 = 150;
 
 echo duplicateCheck($start1, $end1, $start2, $end2);
 $flag = duplicateCheck($start1, $end1, $start2, $end2);
 
 // 重複していればTRUE
 function ($start1, $end1, $start2, $end2)
 {
     return ($start1 <= $end2 && $start2 <= $end1);
     $flag = FALSE;
 
     if ($start1 <= $end2 && $start2 <= $end1) {
         $flag = TRUE;
     }
 
     return $flag;
 }

***日付の場合 [#sd0985da]

 $start1 = '2016-04-01';
 $end1 = '2016-04-30';
 $start2 = '2016-04-15';
 $end2 = '2016-05-15';
 
 echo duplicateCheck($start1, $end1, $start2, $end2);
 $flag = duplicateCheck($start1, $end1, $start2, $end2);
 
 // 重複していればTRUE
 function ($start1, $end1, $start2, $end2)
 {
     $flag = FALSE;
 
     $start1 = strtotime($start1);
     $end1 = strtotime($end1);
     $start2 = strtotime($start2);
     $end2 = strtotime($end2);
 
     return ($start1 <= $end2 && $start2 <= $end1);
     if ($start1 <= $end2 && $start2 <= $end1) {
         $flag = TRUE;
     }
 
     return $flag;
 }



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS