<?php
/**
* PHP 补全日期区间中缺少的日期/返回缺少的日期
*/
$lists = $list = array();
$result = $db->query("SELECT id, date FROM `table_name` WHERE `areaname` = 'xxx'");
while ($r = $db->fetch_array($result)) {
$list[] = $r['date'];
$lists[] = $r;
}
# 补全日期
$newData = spd('2012-01-01', '2013-08-08');
# 缺少的日期
$difference_set_arr = array_diff($newData, $list);
echo '<pre>';
var_dump("'" . implode("','", $difference_set_arr) . "'");
die;
function spd($minimum_time, $maximum_time)
{
# 日期必须使用字符串类型 因为日期不是数值类型
$collection = [];
// 循环计算
$minimum_time = strtotime($minimum_time);
$maximum_time = strtotime($maximum_time);
while ($minimum_time <= $maximum_time) {
$collection[] += $minimum_time;
$minimum_time = strtotime('+1 day', $minimum_time);
}
foreach ($collection as &$value) {
$value = date('Y-m-d', $value);
}
return $collection;
}
PHP 补全日期区间中缺少的日期/返回缺少的日期
最新推荐文章于 2024-04-08 00:47:42 发布
本文介绍了一种使用PHP实现的方法,用于补全指定日期区间内的所有日期,并找出数据库记录中缺失的日期。通过循环计算从最小日期到最大日期的所有天数,将这些日期与数据库中的现有日期进行对比,从而确定哪些日期未被记录。
691

被折叠的 条评论
为什么被折叠?



