Как получить дату между 2009-12-25 и 2009-12-30 в PHP? - PullRequest
1 голос
/ 25 декабря 2009

Как реализовать функцию?

Таким образом, он выведет массив, содержащий 2009-12-25 2009-12-26 2009-12-27 2009-12-28 2009-12-29 2009-12-30?

Ответы [ 4 ]

5 голосов
/ 25 декабря 2009
$startdate = strtotime("2009-12-25");
$enddate = strtotime("2009-12-30");
$steps = "1 day"; 

# Start
$date = $startdate;
while ($date <= $enddate)  
  {   echo date("Y-m-d", $date)."<br>";
      $date = strtotime ("+".$steps, $date); // can be slow with large arrays, 
                                             // you can also just add 60*60*24 seconds
                                             // to $date

   }
3 голосов
/ 25 декабря 2009

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

 $startDate = mktime(0, 0, 0, 12, 25, 2009);
 $endDate = mktime(0, 0, 0, 12, 30, 2009);
 for ($i=$startDate; $i<=$endDate; $i=$i+86400) {
   $timeArray[]=date("Y-m-d", $i);
 }

Результат:

array (
  0 => '2009-12-25',
  1 => '2009-12-26',
  2 => '2009-12-27',
  3 => '2009-12-28',
  4 => '2009-12-29',
  5 => '2009-12-30',
)
2 голосов
/ 25 декабря 2009

Начиная с версии 5.3 вы также можете использовать класс DatePeriod .

0 голосов
/ 25 декабря 2009

Используйте mktime с инкрементной переменной для дня:

$array = array();
for ($x = 25; $x <= 30; $x++) {
    $array[] = date('Y-m-d', mktime(0, 0, 0, 12, $x, 2009));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...