php интервал дат / период дат не работает должным образом - PullRequest
5 голосов
/ 28 февраля 2012

После некоторых исследований Dateperiod выясняется, что по умолчанию он исключает конечную дату, хотя в явном виде это не указано в руководстве по PHP. Я также не заметил никакой возможности включить его. Похоже, что единственный вариант - исключить дату начала. Кто-нибудь еще сталкивался с этим?

Ответы [ 2 ]

8 голосов
/ 28 февраля 2012

вы забыли время

  $start_date = '02/28/2012 00:00:00';
  $end_date = '02/29/2012 23:59:59';
  $intrDate = '1D';

  $start = new \DateTime($start_date);
  $end = new \DateTime($end_date);
  $interval = new \DateInterval('P'.$intrDate);
  $period = new \DatePeriod($start, $interval, $end);

  print_r($start_date);
  print_r($end_date);
  print_r($period);

  foreach ($period as $day) {
          $dates[] = array(
              'eventID' => $event_id, 
              'date' => $day->format('Y-m-d'), 
              'max' => $data['numAttending']);
      }

  print_r($dates);
  exit;

это вывод:

Array
(
    [0] => Array
        (
            [eventID] => 
            [date] => 2012-02-28
            [max] => 
        )

    [1] => Array
        (
            [eventID] => 
            [date] => 2012-02-29
            [max] => 
        )

)

без времени вы получите:

Array
(
    [0] => Array
        (
            [eventID] => 
            [date] => 2012-02-28
            [max] => 
        )

)
0 голосов
/ 28 февраля 2012

php.net цитата

L - будь то високосный год

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...