我在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。
答案 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>";
// .....
}
此代码适用于您的情况。如果有任何问题,请告诉我。