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

PHP中如何格式化ACF传入的时间并判断webinar日期是否为未来时间

问题根源

你当前的代码存在3个核心错误:

  • 单引号不解析PHP变量:你用单引号包裹$webinar_date $webinar_time,PHP不会把里面的变量替换为实际的日期、时间值,导致strtotime接收的是无效字符串,返回false,后续格式化的时间完全错误。
  • 全角引号语法错误:代码中使用了中文全角引号‘’,PHP无法识别,会直接抛出语法错误,需要替换为半角英文引号''/""。
  • 字符串比对的潜在风险:把时间格式化为字符串后再比对,虽然逻辑合法,但不如直接比对时间戳高效,也容易出现格式不匹配导致的比对错误。

修复后可用代码

// 从ACF获取日期、时间值,确认字段返回格式分别为F j, Y、g:i a
$webinar_date = get_field('webinar_date');
$webinar_time = get_field('webinar_time');

// 拼接后转换为时间戳,这里用双引号才能解析内部变量
$webinar_timestamp = strtotime("$webinar_date $webinar_time");
// 获取当前时间的时间戳,自动适配站点时区
$now_timestamp = time();

// 直接比对时间戳,逻辑更简洁
if ($webinar_timestamp >= $now_timestamp) {
    echo $webinar_date;
    echo ' ' . $webinar_time;
}

可选优化

如果要规避时区偏差问题,可以提前统一设置脚本时区:

// 替换为你站点实际使用的时区,比如Asia/Shanghai
date_default_timezone_set('Asia/Shanghai');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:24:02