0

$startDatewhich isNov 12, 2013および$endDatewhich is と一緒に来る ajax データ オブジェクトがありJanuary 31, 2014、次のような配列を作成したいと思います。

array(2013-11-12, 2013-11-13, 2013-11-14, ... , 2014-01-31);

私がこれをやろうとした方法は次のとおりです。

    while($startDate < $endDate){
       $day = gmdate('Y-m-d', strtotime('+1 day', strtoTime($data->data['startDate'])));
       $daysOfTheWeek[] = $day;
    }

しかし、スクリプトは 30 秒後にタイムアウトしました。だから私はこれを行う適切な方法が何であるか疑問に思っています。

4

2 に答える 2

1
date_default_timezone_set('UTC');
$date_from = 'Nov 12, 2013';
$date_to = 'January 31, 2014';
$date_range = array_map(function ($date) {
        return $date->format('Y-m-d');
    }, iterator_to_array(
        new DatePeriod(new DateTime($date_from),
                       DateInterval::createFromDateString('+1 day'),
                       (new DateTime($date_to))->modify('+1 day'))));
var_dump($date_range);

デモ: https://eval.in/68133

于 2013-11-14T17:43:34.573 に答える
1
<?php
  $dates=array();
  $start=strtotime("Nov 12, 2013");
  $end=strtotime("January 31, 2014");
  while($start <= $end)
  {
    $dates[]=date("Y-m-d",$start);
    $start=strtotime("+1 day",$start);
  }
  print_r($dates);
?>

フィドル

于 2013-11-14T17:38:57.067 に答える