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

PHP时间处理需求:获取+6小时及再加15分钟的时分格式

Hey,我来帮你搞定这个报错问题!

你遇到的Call to a member function format() on integer错误,核心原因很简单:strtotime()返回的是一个Unix时间戳(也就是整数),而format()是PHP中DateTime对象的方法,你直接给整数调用对象方法肯定会报错呀!

下面给你两种靠谱的解决方案,按需选择:

方案一:用DateTime类(推荐,更直观灵活)

DateTime是PHP处理时间的现代方式,代码可读性更高,也更容易维护复杂的时间操作:

// 初始化当前时间的DateTime对象
$current = new DateTime();

// 计算当前时间+6小时的时分值,存入$dateNow
$dateNowTime = (clone $current)->add(new DateInterval('PT6H'));
$dateNow = $dateNowTime->format('H:i');

// 在$dateNow的基础上再加15分钟,得到$dateThen的时分值
$dateThenTime = (clone $dateNowTime)->add(new DateInterval('PT15M'));
$dateThen = $dateThenTime->format('H:i');

// 测试输出
echo "dateNow: {$dateNow}<br>";
echo "dateThen: {$dateThen}";

这里用clone是为了避免修改原始的$current对象,DateInterval的PT6H表示“增加6小时”,PT15M表示“增加15分钟”,语义非常清晰。

方案二:用时间戳+date函数(兼容旧版PHP)

如果你习惯用传统的时间戳写法,只需要把时间戳传给date()函数来格式化就行,不用去调用对象方法:

// 获取当前时间+6小时的时间戳,再格式化为时分
$nowTimestamp = strtotime('+6 hours');
$dateNow = date('H:i', $nowTimestamp);

// 以$nowTimestamp为基准,再加15分钟后格式化
$thenTimestamp = strtotime('+15 minutes', $nowTimestamp);
$dateThen = date('H:i', $thenTimestamp);

// 测试输出
echo "dateNow: {$dateNow}<br>";
echo "dateThen: {$dateThen}";

strtotime的第二个参数可以指定计算的基准时间戳,这样直接在6小时后的时间基础上加15分钟,一步到位。

拿你给出的示例时间2018-01-07 16:35:10测试,两种方案都会输出:

dateNow: 22:35
dateThen: 22:50

完全符合你的需求哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:31:16