You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现:判断给定时间戳是否属于前一天

判断时间戳是否属于前一天的PHP实现

原代码通过计算24小时间隔返回天数差,但需求改为:判断给定时间戳对应的日期是否为当前日期的前一天(即使间隔仅2或6小时也需返回true),返回布尔值。以下是实现方案:

实现代码

function isTimestampFromPreviousDay($timestamp) {
    try {
        // 将时间戳转为Asia/Kolkata时区的DateTime对象
        $targetDateTime = DateTime::createFromFormat('U', $timestamp);
        $targetDateTime->setTimezone(new DateTimeZone('Asia/Kolkata'));

        // 获取当前Asia/Kolkata时区的日期,并生成前一天的DateTime对象
        $currentDateTime = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
        $previousDayDateTime = (clone $currentDateTime)->modify('-1 day');

        // 仅对比日期部分(年-月-日),忽略具体时间
        return $targetDateTime->format('Y-m-d') === $previousDayDateTime->format('Y-m-d');
    } catch (Exception $e) {
        throw new Exception($e->getMessage());
    }
}

关键说明

  • 时区统一:全程使用Asia/Kolkata时区,避免跨时区导致的日期判断偏差
  • 自然日判断:通过modify('-1 day')直接获取当前日期的前一天,而非依赖小时数计算,确保符合自然日的判断逻辑
  • 日期对比:使用Y-m-d格式对比日期字符串,只关注日期是否匹配,忽略具体时分秒的差异

内容的提问来源于stack exchange,提问作者Sai Darshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:25:31