PHP MySQL日期的增加天数

时间:2017-04-17 19:06:08

标签: php mysql

我在MySQL中有一个带有日期字段(称为NDate)的表,其中包含标准日期值(“2017-04-17”,“2017-04-18”等)。

通过PHP网页,我试图获取系统日期(比如今天是2017-04-17),然后从上面的表中拉出所有行,其中NDate =“2017-04-17”。直到这里都没有问题。

我要求增加一天(从今天开始,接下来的10天 - 即2017-04-17到2017-04-26),以及每天报告条目,如“条目” 2017-04-17“将列出所有具有NDate 2017-04-17的行”,“2017-04-18的条目”,其中将列出具有NDate 2017-04-18的所有行。

我试图使用带有PHP date_modify函数的for循环逐个递增日期,但它没有显示任何结果。
以下是选定的代码:

date_default_timezone_set('US/Eastern');
$datev = date("Y-m-d");
for ($x = 0; $x <= 10; $x++) 
{
    $datev=date_modify($date,"+$x days");
    echo "before date format<br>";      // echo statement 1
    echo "date is: $datev <br>";        // echo statement 2
    $sql = "SELECT * FROM tablename where Ndate='$datev'";
    echo "before result<br>";           // echo statement 3
    ...
    ...
    ...
}  

网页上的输出仅显示声明1.但不打印回显统计数据2和3。

2 个答案:

答案 0 :(得分:0)

试试这个:

$start = strtotime(date('Y-m-d'));
$end = strtotime(date('Y-m-d', strtotime('+10 days')));
while($start <= $end)
{
    $date = date('Y-m-d', $start);
    //use $date to do stuff
    //SELECT * FROM tablename where Ndate='$date'
    $start = strtotime("+1 day", $start);
}

答案 1 :(得分:0)

您可以使用strtotime函数作为日期参数函数来增加天数。

在10天内,您可以使用for循环来构建一个天数。然后迭代它,执行您需要的查询。

$today = date('Y-m-d');
$dates=array($today);
for($i=1;$i<10;$i++) {
    $NewDate=date('Y-m-d', strtotime("+".$i." days"));
    $dates[]=$NewDate;
}

foreach($dates as $dt) {
    // sql stuff here
    echo "date is: $dt <br>";
    $sql = "SELECT * FROM tablename where Ndate='$dt'";
     echo "before result<br>";
    // .....
}

此代码适用于您的情况。如果有任何问题,请告诉我。