<?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 发布