【问题标题】:PHP - Increment Dates in Loop [duplicate]PHP - 在循环中增加日期[重复]
【发布时间】:2015-06-28 04:47:06
【问题描述】:
$end_date = new DateTime($_GET['end_date']); 
$last_day_this_month = $end_date->format('d-m-Y'); //outputs 10-03-2015

$start_date = new DateTime($_GET['start_date']);
$loop_dates = $start_date->format('d-m-Y'); //outputs 22-04-2015

        for($i = $loop_dates; $i <= $last_day_this_month; $i++)
        {
                echo $i;echo '<br>';


        }

使用下面的循环增加年份而不是日期

for($i = $loop_dates; $i <= $last_day_this_month; $i++)

如何使用循环遍历/递增开始/结束日期,以便输出从10-03-201522-04-2015 的所有日期。

P.S:我正在使用PHP5.3,所以想使用面向对象的方法而不是使用 strtotime

【问题讨论】:

  • 你考虑过DatePeriod吗?
  • 计算这两个日期之间的天数并应用$date-&gt;modify('+1 day');+1更改为$i

标签: php date


【解决方案1】:

你可以试试下面的代码

$begin = new DateTime('2013-02-01');
$end = new DateTime('2013-02-13');

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

foreach($daterange as $date){
    echo $date->format("d") . "<br>";
}

【讨论】:

  • 它输出 10-20 而不是专门来自 10-MAR to 20-APR
【解决方案2】:

试试这个

<?php
$start = '2013-08-25';
$end = '2013-08-29';
$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>";
}
?>

【讨论】:

    猜你喜欢
    • 2022-08-10
    • 1970-01-01
    • 2013-06-17
    • 2016-03-02
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多