0

PHP を使用して日付の差を計算する方法を知っています。

$newdate = "01-03-2013";
$olddate = "01-06-2013";
$date_diff = abs(strtotime($olddate)-strtotime($newdate)) / 86400;
echo $date_diff;

しかし、次のような配列にいくつかの日付があるとします。

$datesarray = array(10-05-2013, 20-05-2013, 12-08-2013);

など、いくつかの特定の日付を保持している場合、開始日と終了日の間にある場合、日曜日と一緒に配列内の日付を除いて日付差を計算することは可能ですか?

4

3 に答える 3

0

次のようなカスタム関数で DateTime クラスを使用します。

function dates_between(DateTime $start, DateTime $end, $format = 'm-d-Y') {
    $date = $start;
    $dates = array();
    $oneDay = new DateInterval('P1D');
    // push all dates between start and end to the result
    while(($date = $date->add($oneDay)) < $end) {
        $dates []= $date->format($format);
    }
    return $dates;
}

使用例:

$now = new DateTime();
$nextWeek = new DateTime('+1 week');
var_dump(dates_between($now, $nextWeek));

出力:

array(6) {
  [0] =>
  string(10) "07-12-2013"
  [1] =>
  string(10) "07-13-2013"
  [2] =>
  string(10) "07-14-2013"
  [3] =>
  string(10) "07-15-2013"
  [4] =>
  string(10) "07-16-2013"
  [5] =>
  string(10) "07-17-2013"
}
于 2013-07-11T15:08:46.313 に答える
0

をループして、と$datesarrayの間にあるかどうかをそれぞれチェックします。その場合は、変数を増やします (明らかに 0 から始まります)。次に-期待される結果が得られます。$olddate$newdate$counter$date_diff$counter

于 2013-07-11T15:04:38.017 に答える