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代码,用于显示两个日期之间的所有日期。但工作不正常 fromdate = 20-04-2015 todate = 25-05-2015 因此,我的代码仅显示20,21,22,23,24,25 但我需要这两个月之间的所有日子 预期产出 20-04 21-04 22-04 23-04 24-04 25-04 26-04 27-04 28-04 ......upto 25-05 下面是我的代码。 <?php $startdate = $_POST['fromd

下面是我的php代码,用于显示两个日期之间的所有日期。但工作不正常

fromdate = 20-04-2015
todate =   25-05-2015
因此,我的代码仅显示
20,21,22,23,24,25

但我需要这两个月之间的所有日子

预期产出

20-04 21-04 22-04 23-04 24-04 25-04 26-04 27-04 28-04  ......upto 25-05
下面是我的代码。

 <?php
    $startdate = $_POST['fromdate'];
    $enddate = $_POST['todate'];
    $start = date('d', strtotime($startdate));
    $end=date('d', strtotime($enddate));
    ?>  

    <?php   for ($x = $start; $x <= $end; $x++) { ?>
        <th width="58%"><?php echo $x; ?></th>
        <?php } ?>

不建议使用
strotime()
date()
来遍历日期,因为这充其量只是一种黑客行为。使用
DateTime
迭代日期:

$start    = new DateTime('20-04-2015');
$end      = (new DateTime('25-05-2015'))->modify('+1 day');
$interval = new DateInterval('P1D');
$period   = new DatePeriod($start, $interval, $end);

foreach ($period as $dt) {
    echo $dt->format("d-m") . "<br>\n";
}
$start=新日期时间('20-04-2015');
$end=(新日期时间('25-05-2015'))->修改('1天');
$interval=新的日期间隔('P1D');
$period=newdateperiod($start、$interval、$end);
foreach(期间为$dt){
echo$dt->格式(“d-m”)。“
\n”; }

对于PHP<5.4(
echo phpversion();
),它不支持:


上面的代码为开始日期和结束日期创建对象。我们必须在结束日期前加上一天,因为它以后不会包含在我们的循环中。然后,它创建一个对象来表示一天的增量,并创建一个对象来包含所有的增量。然后,它循环遍历每个日期,并以您期望的格式回显日期。

哇,不幸的是,这样好的解释在这样的情况下非常罕见。爱死它了!分析错误:语法错误,$end=(new DateTime('25-05-2015'))->modify('+1天')中意外的T_OBJECT_运算符;您正在运行什么版本的PHP?PHP/5.3.5版本的PHP@ankitingle请参阅<5.4下PHP版本答案中的演示,其中不支持