php - php mysql 两个日期之间的记录数

标签 php mysql

我有这段代码来获取两个日期$date1$date2之间的记录

for ($i=$date1;$i<$date2;$i++){//BETWEEN THE TWO DATES
        $count_rcvd=mysql_num_rows(mysql_query("select * from cards where Date_Rcvd='$i'"));
        $count_collect=mysql_num_rows(mysql_query("select * from cards where Date_Collected='$i'"));
        if($i==$date1){FOR THE FIRST DATE IN THE RANGE
        $uncollected=mysql_num_rows(mysql_query("select * from cards where Status='AVAILABLE' and Date_Rcvd<='$i'"));
        $balance=$uncollected;
    }
    else{//FOR CONSECUTIVE DATES AFTER DATE1
    $uncollected=mysql_num_rows(mysql_query("select * from cards where Status='AVAILABLE' and Date_Rcvd<'$i'"));//previous days balance
    $balance=$uncollected+$count_rcvd-$count_collect;

当我回显 $i 时 echo “”; 回显$i;
echo “”; 回显 $count_rcvd; echo “”; 回显 $count_collect; echo “”; 回显$余额; 回显“”;

我在下面得出的日期远远超出了日历日期

014-03-15   0   7   103
2014-03-16  0   3   100
2014-03-17  0   7   96
2014-03-18  0   9   94
2014-03-19  0   5   98
2014-03-20  15  6   112
2014-03-21  0   6   103
2014-03-22  0   1   108
2014-03-23  0   0   109
2014-03-24  0   8   101
2014-03-25  0   3   106
2014-03-26  0   0   109
2014-03-27  1   2   108
2014-03-28  0   0   110
2014-03-29  6   1   115
2014-03-30  0   0   116
2014-03-31  0   0   116
2014-03-32  0   0   116
2014-03-33  0   0   116
2014-03-34  0   0

问题是输出日期超出了例如 31 日......帮助!!!

最佳答案

要迭代日期,我建议您使用 DateTime 和 DateTimeInterval 类(小心!最低 PHP 5.3):http://www.php.net/manual/fr/class.datetime.php

您可以按照真实日历添加天/月:http://www.php.net/manual/fr/datetime.add.php

关于php - php mysql 两个日期之间的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907737/

相关文章:

php - PHP 并行计算的数据库架构最佳实践?

mysql - 无法启动 MySQL Galera 集群中的第二个节点

php - 从多个文件夹中批量插入图像(文件夹中包含图像)将不起作用

php - 排除 Mysql 中的结果,而不是 IN

php - SQL 语句给我一个错误?

PHP 使用 cron 作业每天生成 csv

php - 如何重新排列数组项,将依赖项移动到顶部?

php - 如何在单引号之间获取 PHP 变量?

php - 如何从 CodeIgniter 中失败的数据库查询中恢复?

php - 如何在 PHPStorm 中设置 PHP 版本?