【发布时间】:2012-01-06 09:19:56
【问题描述】:
我有两个约会。假设它们看起来像这样。
$start = 2010/12/24;
$end = 2012/01/05;
我查询数据库以查找这两个日期之间的访问。我找到一些。然后我填充了一个名为 stats 的数组。
$stats['2010/12/25'] = 50;
$stats['2010/12/31'] = 25;
...
如您所见,有几天不见了。 我需要用零值填充缺失的日期。我在想这样的事情。 (我已经从开始日期和结束日期中提取了日/月/年。
for($y=$start_year; $y <= $end_year; $y++) {
for($m=$start_month; $m <=$end_month; $m++) {
for($d=$start_day; $d <= $end_day; $d++) {
这在一年中可以正常工作,但是月份和日期不起作用。如果开始日是 15 日。随后每个月的第 1-14 天将被错过。那么我可以有这样的解决方案......
for($y=$start_year; $y <= $end_year; $y++) {
for($m=1; $m <13; $m++) {
$total_days = cal_days_in_month(CAL_GREGORIAN, $m, $y) + 1;
for($d=1; $d <= $total_days; $d++) {
然后我需要一堆 if 语句来确保开始和结束的月份和日期是有效的。
有没有更好的方法来做到这一点?或者这甚至可以在我的 mysql 查询中完成吗?
【问题讨论】:
-
请不要问与日期时间相关的问题。他们都已经回答了。
标签: php