Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:两个日期之间的天数列表_Php_Date - Fatal编程技术网

PHP:两个日期之间的天数列表

PHP:两个日期之间的天数列表,php,date,Php,Date,有没有一种简单的方法可以在PHP中获取两个日期之间的天数列表 我希望最后能有这样的东西: (伪代码) 生成的数组将包含: resultArray[0] = 29/08/2013 resultArray[1] = 30/08/2013 resultArray[2] = 31/08/2013 resultArray[3] = 01/09/2013 resultArray[4] = 02/09/2013 resultArray[5] = 03/09/2013 例如。试试这个: function da

有没有一种简单的方法可以在PHP中获取两个日期之间的天数列表

我希望最后能有这样的东西:

(伪代码)

生成的数组将包含:

resultArray[0] = 29/08/2013
resultArray[1] = 30/08/2013
resultArray[2] = 31/08/2013
resultArray[3] = 01/09/2013
resultArray[4] = 02/09/2013
resultArray[5] = 03/09/2013
例如。

试试这个:

function daysBetween($start, $end)
   $dates = array();
   while($start <= $end)
   {
       array_push(
           $dates,
           date(
            'dS M Y',
            $start
           )
       );
       $start += 86400;
   }
   return $dates;
}

$start    = strtotime('2009-10-20');
$end    = strtotime('2009-10-25'); 
var_dump(daysBetween($start,$end));
($start,$end)之间的函数日 $dates=array();
虽然($start不知道这是否切实可行,但它非常直接

$end = '2013-08-29';
$start = '2013-08-25';
$datediff = strtotime($end) - strtotime($start);
$datediff = floor($datediff/(60*60*24));
for($i = 0; $i < $datediff + 1; $i++){
    echo date("Y-m-d", strtotime($start . ' + ' . $i . 'day')) . "<br>";
}
$end='2013-08-29';
$start='2013-08-25';
$datediff=strottime($end)-strottime($start);
$datediff=楼层($datediff/(60*60*24));
对于($i=0;$i<$datediff+1;$i++){
回显日期(“Y-m-d”,strotime($start.'+.$i.'day'))。“
”; }
$datearray=array();
$date=$date1;
$days=ceil(abs($date2-$date1)/86400)+1;//天数

对于($i=1;$i如何:?我试着把日期分开,并把它们分为date1Day、date1Month、date1Year、date2Day等。我先减去不同的年、月和日来计算有多少天。然后从date1开始只是添加日期。我遇到了一个问题,因为月份是30/31/28/29天……谢谢你,That似乎正是我想要的。因为我对PHP很陌生,如果你还有一秒钟的时间,你能告诉我反斜杠是什么意思吗?了解DateTime对象是个好主意:功能强大且灵活,时区和夏令时感知;它们及其相关对象(DatePeriod和DateInterval)你真的可以和约会一起工作吗simple@user2018084请看,反斜杠是一个引用,指示全局范围内的类……如果您不使用名称空间,那么您不必担心它们:它们不需要,但不会造成任何伤害
$date1 = '29/08/2013';
$date2 = '03/09/2013';

function returnDates($fromdate, $todate) {
    $fromdate = \DateTime::createFromFormat('d/m/Y', $fromdate);
    $todate = \DateTime::createFromFormat('d/m/Y', $todate);
    return new \DatePeriod(
        $fromdate,
        new \DateInterval('P1D'),
        $todate->modify('+1 day')
    );
}

$datePeriod = returnDates($date1, $date2);
foreach($datePeriod as $date) {
    echo $date->format('d/m/Y'), PHP_EOL;
}
$end = '2013-08-29';
$start = '2013-08-25';
$datediff = strtotime($end) - strtotime($start);
$datediff = floor($datediff/(60*60*24));
for($i = 0; $i < $datediff + 1; $i++){
    echo date("Y-m-d", strtotime($start . ' + ' . $i . 'day')) . "<br>";
}
$datearray = array();
   $date = $date1;
   $days = ceil(abs($date2 - $date1) / 86400) + 1;//no of days

   for($i = 1;$i <= $days; $i++){

     array_push($datearray,$date);
     $date = $date+86400;

   }
     foreach($datearray as $days){
      echo date('Y-m-d, $days);
      }
function DatePeriod_start_end($begin,$end){

        $begin = new DateTime($begin);

        $end = new DateTime($end.' +1 day');

        $daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);

        foreach($daterange as $date){
            $dates[] = $date->format("Y-m-d");
        }
        return $dates;

    }