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

如何将PHP date()生成的日期转为整型以实现与当前日期的比较

PHP日期转整型及时间比较实现方案

核心原理

PHP提供strtotime()函数,可直接将符合规范的日期字符串(包含你用到的带am/pm的12小时制格式)转换为秒级Unix时间戳(整型,值为1970-01-01 00:00:00 UTC到对应时间的秒数),直接比较整型数值大小即可判断时间先后。


方法1:PHP代码层处理

适合PHP变量之间的时间比较:

  • 转换指定日期为整型时间戳:
    $targetTimestamp = strtotime("2021-04-14 02:26:05am");
  • 转换你生成的$date变量为整型时间戳:
    $currentTimestamp = strtotime($date);
  • 比较逻辑:
if ($currentTimestamp > $targetTimestamp) {
    // 满足"晚于指定日期"条件的业务逻辑
}
  • 优化点:如果你需要的是当前时间的时间戳,无需先生成日期字符串再转换,直接调用time()函数即可拿到当前时间的整型时间戳,性能更高。

方法2:数据库查询时直接筛选(更推荐)

如果你是要从数据库筛选符合条件的数据,直接在SQL层处理效率更高:

  • 情况1:数据库insert_time字段为datetime/date字符串类型
    直接在SQL中传入日期字符串比较即可:
SELECT * FROM 表名 WHERE insert_time > '2021-04-14 02:26:05am';
  • 情况2:数据库insert_time字段存储的是整型时间戳
    先在PHP中转换目标日期为时间戳,再拼接SQL:
$targetTimestamp = strtotime("2021-04-14 02:26:05am");
$sql = "SELECT * FROM 表名 WHERE insert_time > {$targetTimestamp}";

注意:如果日期字符串格式存在非标准写法,建议先用DateTime类解析更稳妥,示例:$dateObj = DateTime::createFromFormat('Y-m-d h:i:sa', '2021-04-14 02:26:05am'); $targetTimestamp = $dateObj->getTimestamp();

内容的提问来源于stack exchange,提问作者Khenneth John Tanong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 10:15:03