GnaKeey 藝康

    為兄弟兩肋插刀,為美女插兄弟兩刀。
    女人如衣服,兄弟如手足,誰穿我衣服我砍他手足﹔
    兄弟如手足,女人如衣服,誰動我手足我穿他衣服。

星期四, 9月 30, 2004

[PHP] 兩個日期區間是否重疊

#$sdate 第一個日期區間的開始日期
#$edate 第一個日期區間的結束日期
#$sday 第二個日期區間的開始日期
#$eday 第二個日期區間的結束日期
#$flag 旗標
# 0表示不能有剛好重疊的情況ex $edate!=$sday
# 1表示可以有剛好重疊的狀況ex $edate==$sday
function is_overlap($sdate,$edate,$sday,$eday,$flag=0){
echo "
\$sdate=$sdate \$edate=$edate \$sday=$sday \$eday=$eday \$flag=$flag";

$s1 = strtotime($sdate);
$e1 = strtotime($edate);
$s2 = strtotime($sday);
$e2 = strtotime($eday);
$str = '';
$F1 = empty($flag)?"<":"<=";
$F2 = empty($flag)?">":">=";

eval("\$str = (($s2 $F1 $s1 && $e2 $F1 $s1)||($s2 $F2 $e1 && $s2 $F2 $e1));");

echo "
\$str = (($s2 $F1 $s1 && $e2 $F1 $s1)||($s2 $F2 $e1 && $s2 $F2 $e1));";
echo "
\$str=$str";

if( $str )
return true;
else
return false;
}

echo "
is_overlap=".is_overlap('2004-08-23 08:11:23','2004-09-23 08:11:23','2004-09-23 08:11:22','2004-11-09 18:11:23',1);
echo "
is_overlap=".is_overlap('2004-08-23 08:11:23','2004-09-23 08:11:23','2004-09-23 08:11:23','2004-11-09 18:11:23',1);
echo "
is_overlap=".is_overlap('2004-08-23 08:11:23','2004-09-23 08:11:23','2004-09-23 08:11:24','2004-11-09 18:11:23',1);
echo "
is_overlap=".is_overlap('2004-08-23 08:11:23','2004-09-23 08:11:23','2004-09-23 08:11:22','2004-11-09 18:11:23',0);
echo "
is_overlap=".is_overlap('2004-08-23 08:11:23','2004-09-23 08:11:23','2004-09-23 08:11:23','2004-11-09 18:11:23',0);
echo "
is_overlap=".is_overlap('2004-08-23 08:11:23','2004-09-23 08:11:23','2004-09-23 08:11:24','2004-11-09 18:11:23',0);
?>

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁