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

PHP中如何自动设置指定日期的当日起止时间(无需硬编码)

实现指定日期的当日零点与结束时间

不用硬编码具体时间的话,PHP里有几种简洁可靠的实现方式:

方法一:使用strtotime函数的语义化时间表达式

strtotime支持多种语义化时间字符串,无需手动拼接固定时间:

$date = '03/04/2023';
// 当日零点:直接解析日期字符串,默认指向当日00:00
$start = strtotime($date);
// 当日23:59:59:先取次日零点再减1秒,避免漏掉最后一秒的数据
$finish = strtotime($date . ' +1 day -1 second');

如果仅需精确到23:59(忽略秒数),也可以直接写:

$finish = strtotime($date . ' 23:59');

方法二:使用DateTime类(推荐,更易维护)

面向对象的DateTime类处理日期时间更规范,尤其适合复杂场景或需要时区支持的情况:

$dateStr = '03/04/2023';
// 初始化DateTime对象,默认对应当日零点
$startDate = new DateTime($dateStr);
// 显式设置为00:00:00,代码可读性更强
$startDate->setTime(0, 0, 0);
$start = $startDate->getTimestamp();

// 获取当日结束时间:克隆起始日期后,先加1天再减1秒
$finishDate = clone $startDate;
$finishDate->modify('+1 day')->modify('-1 second');
$finish = $finishDate->getTimestamp();

如果需要输出格式化后的日期字符串,直接调用format方法即可:

echo $startDate->format('m/d/Y H:i:s'); // 输出 03/04/2023 00:00:00
echo $finishDate->format('m/d/Y H:i:s'); // 输出 03/04/2023 23:59:59

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:35:23