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

如何用PHP函数在WordPress中格式化Events Manager Pro注册开始时间

修改Events Manager Pro自定义占位符的日期时间格式

你可以通过修改子主题functions.php中的代码,利用PHP的DateTime类转换日期时间格式,实现Monday January 9 at 10h00的展示样式。以下是修改后的完整代码:

function my_em_registrationstartdatetime_placeholder($replace, $EM_Event, $result){
    if ( $result == '#_REGISTRATIONSTARTDATETIME' ) {
        $ticket_list = "";
        foreach( $EM_Event->get_tickets()->tickets as $EM_Ticket ){
            // 获取插件返回的原始日期时间字符串
            $original_datetime = $EM_Ticket->get_datetime('start');
            // 按原始格式解析为DateTime对象
            $datetime = DateTime::createFromFormat('Y-m-d H:i:s', $original_datetime);
            
            if ($datetime) {
                // 格式化为目标样式
                $formatted_datetime = $datetime->format('l F j \a\t H\hi');
                $ticket_list .= $formatted_datetime;
                // 若有多个票种,可添加分隔符(比如换行)
                // $ticket_list .= '<br>';
            }
        }
        $replace = $ticket_list;
    }
    return $replace;
}
add_filter('em_event_output_placeholder','my_em_registrationstartdatetime_placeholder',1,3);

关键修改说明:

  1. 解析原始时间:用DateTime::createFromFormat方法,按照插件返回的Y-m-d H:i:s格式把字符串转换成可操作的DateTime对象,确保解析准确。
  2. 自定义格式字符串:format方法中的参数对应你需要的样式:
    • l:输出星期全称(如Monday)
    • F:输出月份全称(如January)
    • j:输出不带前导零的日期(如9)
    • \a\t:转义输出固定文本at(因为a和t是DateTime的内置格式符,需要反斜杠转义)
    • H:输出24小时制的小时数(如10)
    • \h:转义输出固定字母h
    • i:输出两位分钟数(如00)
  3. 容错处理:添加if ($datetime)判断,避免原始时间格式异常时出现错误输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:25:40