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

PHP中WordPress文章发布日期加2天遇非合规数值错误如何解决

错误原因

  • strtotime() 函数参数使用错误:该函数第二个参数要求传入整数型时间戳作为计算基准,你直接传入字符串 '+2 days' 不符合参数要求,触发非数值类型报错。
  • 日期格式存在解析歧义:你用 d/m/Y 格式拿到的日期,strtotime() 会默认把 / 分隔的日期识别为 月/日/年 格式,当日期中的日数值大于12时会解析失败返回false,也会引发后续格式转换报错。

修复方案

方案1:直接获取发布时间戳计算(最省心,避免格式解析问题)

WordPress 原生提供了直接获取文章发布时间戳的函数,可以跳过格式解析环节:

// 直接获取文章发布时间戳
$published_timestamp = get_post_time( 'U', false, get_the_ID() );
$published_date = date( 'd/m/Y', $published_timestamp );
echo 'Pub: ' . $published_date . '<br />';  

// 以发布时间戳为基准加2天,再格式化输出
$expiry_date = date( 'd/m/Y', strtotime( '+2 days', $published_timestamp ) );
echo 'Exp: ' . $expiry_date . '<br />';

方案2:用DateTime类明确格式解析(更稳定,适合复杂日期操作)

$published_date = get_the_date( 'd/m/Y', get_the_ID() );
echo 'Pub: ' . $published_date . '<br />';  

// 明确指定输入日期的格式,避免解析歧义
$date_obj = DateTime::createFromFormat( 'd/m/Y', $published_date );
$date_obj->modify( '+2 days' );
$expiry_date = $date_obj->format( 'd/m/Y' );
echo 'Exp: ' . $expiry_date . '<br />';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:00:04