2011-01-03 20 views
1

ポイントがstartextraの間にあるかどうかを確認するにはどうすればよいでしょうか。php - 日付と追加の時間の差を確認する

point = 2010-06-20 
start = 2010-06-17 
extra = start + "1 week" 

任意のアイデアをいただければ幸いです。

+1

を行うことができます

class DateRange extends DatePeriod { public function contains(DateTime $dateTime) { return in_array($dateTime, iterator_to_array($this)); } } 

を '' + 1 week'を開始するextra'べきではないのですか?そうでなければ、 'point'が' extra'の前にあるかどうかをチェックするのは全く無意味です。 – oezi

+0

@oezi:そうです! – MikeCooper

答えて

1

を試してみてください - 単に結果のタイムスタンプを比較します

$start = strtotime('2010-06-20'); 
$point = strtotime('2010-06-17'); 
$extra = strtotime('+1 week', $start); 

if($start < $point && $extra > $point){ 
    // it's bewtween... 
} 
0

を見て、この

$start_timestamp = strtotime('2010-05-17'); 
$end_timestamp = strtotime(date("Y-m-d", $start_timestamp) . " +1 week"); 
$point_timestamp = strtotime('2010-16-20'); 

if ($point_timestamp < $end_timestamp && $point_timestamp > $point_timestamp) { 
// Do your work 
} 
1

は、PHP 5.3

$period = new DatePeriod(
    new DateTime('2010-06-17'), 
    DateInterval::createFromDateString('+1 day'), 
    new DateTime('2010-06-17 +1 week') 
); 

if (in_array(new DateTime('2010-06-20'), iterator_to_array($period))) { 
    // date is in range 
} 

マニュアルhttp://de2.php.net/manual/en/dateperiod.construct.php

が必要です

私はおそらくcontains方法持っているDatePeriodクラスを拡張したい:あなたは

$period = new DateRange(
    new DateTime('2010-06-17'), 
    DateInterval::createFromDateString('+1 day'), 
    new DateTime('2010-06-17 +1 week') 
); 
if ($period->contains(new DateTime('2011-06-20'))) { 
    // date is in range 
} 
関連する問題