0

重複の可能性:
増分日付文字列を生成します

私は持っています:

$start_date = '2012-09-03';
$number_days = 5;

この日付の配列を受け取りたいのですが:

$dates = array(
            '2012-09-03',
            '2012-09-04',
            '2012-09-05',
            '2012-09-06',
            '2012-09-07'
 );

このための最良の方法は何ですか?

4

7 に答える 7

0

http://php.net/manual/en/function.date-add.php ループして、必要な日付を追加します。

于 2012-09-03T10:27:14.343 に答える
0

このようなことを試しましたか

    function get_days($start_date, $max){
        $ts=strtotime($start_date);
        $next_day_interval=24*60*60;
        $arr=array();
            $arr[]=$start_date;
        for($i=1;$i<=$max;$i++){
            $ts += $next_day_interval;
            $arr[]=date('Y-m-d', $ts);
        }

        return $arr;
    }

ここに書いたばかりなので、コンパイル時のエラーが発生する可能性がありますが、理解していただければ幸いです。

于 2012-09-03T10:27:28.113 に答える
0

これを試して。

$start_date = '2012-09-03';
$number_days = 5;

$dates = array();
$TS = strtotime($start_date);
$dates[0] = $start_date;
for($i=1;$i<5;$i++)
{
    $dates[$i] = date('Y-m-d', strtotime('+1 day', $TS));
    $TS = strtotime($dates[$i]);
}
于 2012-09-03T10:28:08.807 に答える
0

これがあなたが探しているものです(PHP <5.3でも動作します)

<?php 
    $start_date = '2012-09-03';
    $number_days = 5;

    $stdate = date(strtotime($start_date));
    $dates = array();
    for($i = 0 ; $i < $number_days ; $i++) {
      $dates[$i] = date('Y-m-d', $stdate) ;
      $stdate += 24*60*60;
    }

    var_dump($dates);
?>
于 2012-09-03T10:29:09.533 に答える
0
$start_date = '2012-09-03';
$dates[] = $start_date;
$number_days = 5;
for ($i=1; $i < $number_days; $i++) {
    $dates[] = date('Y-m-d', strtotime("$start_date +$i days"));
}
于 2012-09-03T10:29:31.730 に答える
0

実際の出力を出力するように@vinayからコードを変更

<?php 
$start_date = '2012-09-03';
$number_days = 5;

$dates = array();
$TS = strtotime($start_date);
for($i=0;$i<5;$i++)
{
    $dates[$i] = date('Y-m-d', strtotime('+1 day', $TS));
    $TS = strtotime($dates[$i]);
   echo date('y-m-d',$TS).'<br>';

}
?>
于 2012-09-03T10:33:35.240 に答える
0

これは、PHP5.3DateTimeとDateIntervalを使用した簡単な例です。これは明確な解決策です。注:PHP 5.2はDateTimeをサポートしていますが、DateIntervalはサポートしていません。PHP5.2のカスタムクラスで宣言できます。DateIntervalの定義を参照してください。

<?php
   $start_date = '2012-09-03';
   $number_days = 5;
   $dt = new DateTime($start_date);

   $dates = array();

   for($i = 0; $i < $number_days; $i++) {
       $dates[] = $dt->format("Y-m-d");
       $dt->add(new DateInterval("P1D"));
   }


   print_r($dates);
?>
于 2012-09-03T10:37:55.317 に答える