循环日期函数php

时间:2016-12-27 04:39:58

标签: php html mysql

我有桌名" guest_room"在数据库中,guest_room的字段是"到达"并且"离开",到达的价值是" 2016-12-27"离开的价值是" 2016-12-31"。

在我的php文件中我想显示从到达到出发日期的数据,这里是我的代码:

$date = $g[arrival];
$end_date = $g[departure];
while (strtotime($date) <= strtotime($end_date)) {                                       
$date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "$date<br>";
}

但在我的结果中显示的日期来自&#34; 2016-12-28&#34;直到&#34; 2017-01-01&#34; 我想要的是,我想显示来自&#34; 2016-12-27&#34;直到&#34; 2016-12-31&#34;

我知道我不应该使用mysql_但这不是重点,请帮帮我

6 个答案:

答案 0 :(得分:0)

试试这段代码,

$date =  "2016-12-27" ;
$end_date = "2016-12-31";
while (strtotime($date) <= strtotime($end_date)) {
    echo "$date<br>";
    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}

答案 1 :(得分:0)

试试这个:

$date = $g[arrival];
$end_date = $g[departure];
while (strtotime($date) < strtotime($end_date)) {                                       
$date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "$date<br>";
}

答案 2 :(得分:0)

/ **  *生成两个日期之间的字符串日期数组  *  * @param string $ start开始日期  * @param string $ end结束日期  * @param string $ format输出格式(默认值:Y-m-d)  *  * @return数组  * /

function getDatesFromRange($start, $end, $format = 'Y-m-d') {
    $array = array();
    $interval = new DateInterval('P1D');

    $realEnd = new DateTime($end);
    $realEnd->add($interval);

    $period = new DatePeriod(new DateTime($start), $interval, $realEnd);

    foreach($period as $date) { 
        $array[] = $date->format($format); 
    }

    return $array;
}

然后,您可以按预期调用该函数:

getDatesFromRange('2010-10-01', '2010-10-05');

答案 3 :(得分:0)

首先简单地回显日期然后递增日期

while (strtotime($date) <= strtotime($end_date)){
    echo "$date<br>";
    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}

答案 4 :(得分:0)

只需将增量放在循环体的末尾:

$date = $g[arrival];
$end_date = $g[departure];
while (strtotime($date) <= strtotime($end_date)) {                                       
    // Switched these lines so the increment is at the end of the body
    echo "$date<br>";
    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}

答案 5 :(得分:0)

$date =  "2016-12-27";
$end_date = "2016-12-31";
while (strtotime("+1 day", strtotime($date)) <= strtotime($end_date)) {  
    echo "$date<br>";
    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));

}
echo "$date<br>";

查看截图 enter image description here