-2

以下は、29、30、および 31 を除くすべての開始日で正常に機能するスクリプトです。

  $startdate='2010-01-30';
  $enddate='2011-01-30';
    while ($startdate <= $enddate)
     { 
      echo date('Y-m-d', $startdate ) . "\n";
      $startdate = strtotime('+1 month', $startdate);
    }
4

3 に答える 3

0

試す

<?php
    $startdate = strtotime('2010-01-29');
    $enddate = strtotime('2011-01-31');
$inc = 1;
    while($startdate <= $enddate )
    {
        $date = date("t", $startdate);
        $numbersofdays = date('d',$startdate);
        $incDate = ($date - $numbersofdays) + 1;
        if ($startdate == $enddate || $inc==1) {
            echo date('Y-m-d',$startdate).  PHP_EOL;
        } else {
        echo date('Y-m-t',$startdate).  PHP_EOL;
       }

         $startdate = strtotime("+".$incDate." days", $startdate );
        $inc++;
    }
?>
于 2013-09-17T06:43:35.213 に答える