2つの数値や期間の重なりを判定する
の編集
https://yassu.jp/pukiwiki/index.php?2%A4%C4%A4%CE%BF%F4%C3%CD%A4%E4%B4%FC%B4%D6%A4%CE%BD%C5%A4%CA%A4%EA%A4%F2%C8%BD%C4%EA%A4%B9%A4%EB
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
[[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; $flag = duplicateCheck($start1, $end1, $start2, $end2); // 重複していればTRUE function ($start1, $end1, $start2, $end2) { $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'; $flag = duplicateCheck($start1, $end1, $start2, $end2); // 重複していればTRUE function duplicateCheck($start1, $end1, $start2, $end2) { $flag = FALSE; $start1 = strtotime($start1); $end1 = strtotime($end1); $start2 = strtotime($start2); $end2 = strtotime($end2); if ($start1 <= $end2 && $start2 <= $end1) { $flag = TRUE; } return $flag; }
タイムスタンプを変更しない
[[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; $flag = duplicateCheck($start1, $end1, $start2, $end2); // 重複していればTRUE function ($start1, $end1, $start2, $end2) { $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'; $flag = duplicateCheck($start1, $end1, $start2, $end2); // 重複していればTRUE function duplicateCheck($start1, $end1, $start2, $end2) { $flag = FALSE; $start1 = strtotime($start1); $end1 = strtotime($end1); $start2 = strtotime($start2); $end2 = strtotime($end2); if ($start1 <= $end2 && $start2 <= $end1) { $flag = TRUE; } return $flag; }
テキスト整形のルールを表示する