2つの数値や期間の重なりを判定する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[PHPめも]]
PHPにて1〜100と50〜150が重なっているか、また2016年4月1日...
日付の場合は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日...
日付の場合は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;
}
ページ名: