PHP 补全日期区间中缺少的日期/返回缺少的日期

<?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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

withoutfear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值