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

PHP中date('l')处理+2天日期时返回结果不符合预期

问题原因及解决方案

你的问题出在date()函数的参数使用错误:date()的第二个参数要求传入Unix时间戳,但你传入的是$date->format('Y-m-d')返回的字符串日期,PHP自动转换该字符串为时间戳时出现偏差,导致星期计算错误。

修正后的代码示例

方式1:直接使用DateTime对象的format方法(推荐)

$date = new \DateTime('now +2 days');   
echo date("l")."<br>";
echo $date->format("l")."<br>"; // 直接通过DateTime自身方法输出星期
echo date_format($date, "Y-m-d");

方式2:将DateTime对象转为时间戳后传入date()

$date = new \DateTime('now +2 days');   
echo date("l")."<br>";
echo date("l", $date->getTimestamp())."<br>"; // 传入正确的时间戳参数
echo date_format($date, "Y-m-d");

两种方式都会正确输出Friday,与2023-10-13对应的星期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:12:32