【问题标题】:Wordpress wrong timezone in timestamp tag时间戳标签中的 Wordpress 时区错误
【发布时间】:2021-11-13 12:51:09
【问题描述】:

我使用以下代码在 wordpress function.php 中创建一个名为 _datetimecustom tag

function add_custom_mail_tag( $custom_mail_tags, $form_id ) {

   $custom_mail_tags[] = "_datetime";

   return $custom_mail_tags;
}
add_filter( "wpcf7_special_mail_tags", function( $output, $name, $html ) {
   if ( $name === "_datetime" ) {
      $submission = WPCF7_Submission::get_instance();
      if ( $timestamp = $submission->get_meta( 'timestamp' ) ) {
         $date = date_i18n( get_option( 'date_format' ), $timestamp );
         $time = date_i18n( get_option( 'time_format' ), $timestamp );
         $date_time = $date . " " . $time;
         return $date_time;
      }
   }
   return $output;
}, 10, 3 );

但是,时区是错误的,即使我在 wordpress 上设置了Setting>General>timezone 下的时区,它仍然会以 UTC 格式发送时区。

此插件的另一个预定义标签可以正常工作并以正确的格式发送时间,但此功能仅以 UTC 格式发送。

如何修改它以发送 wordpress 设置的正确时区?

谢谢。

【问题讨论】:

    标签: php wordpress date datetime timezone


    【解决方案1】:

    解决方案:

    我用wp_date 替换了date_i18n,它解决了这个问题。 另请注意,date_i18n() 现在已弃用,取而代之的是 wp_date(),如下文中所述。

    https://make.wordpress.org/core/2019/09/23/date-time-improvements-wp-5-3/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-12
      • 2014-02-12
      • 2014-08-11
      • 2019-05-30
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多