您所指的日历不是WordPress提供的。您使用的是“日期”输入字段类型,它是HTML5输入规范。日历是基于此从浏览器中获取的。
如果您的问题是关于输入本身的时区偏移量(那么输入会显示什么),那么您应该注意,HTML5“date”输入没有时区偏移量。永远是格林尼治时间。
Option 1: HTML5 "datetime-local"
一种可能是使用输入类型“datetime local”(不要使用“datetime”,因为这是一种不推荐使用的字段类型),但请记住,这可能不会实际提供您想要的内容,因为时区将是用户的时区。如果您的所有用户都在同一时区,那么这可能是一个解决方案:
<input type="datetime-local" name="date_added" id="date_added" class="regular-text" value="<?php echo get_post_meta($post->ID,\'date_added\',true ); ?>">
Option 2: jQuery UI datepicker
更好的解决方案可能是使用jQuery UI日期选择器(WordPress中包含了它)。然而,默认情况下这也是GMT,很难根据时区偏移进行调整。不幸的是,我不能给你一个时区偏移的例子,但为了让你开始使用它,请在函数中添加以下内容。php:
add_action(\'wp_enqueue_scripts\', \'my_add_jquery_datepicker\');
function my_add_jquery_datepicker() {
wp_enqueue_script( \'jquery\' );
wp_enqueue_script( \'jquery-ui-datepicker\' );
$css = wp_register_style( \'jquery-ui\', \'//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css\' );
wp_enqueue_style( \'jquery-ui\', $css );
}
然后,要使用它,请添加一些jQuery以将字段的ID附加为datepicker字段。为了给你一个简单的工作示例,这里有一个快速而肮脏的方法通过
wp_head
(如果使用,您应该以更好的方式实现):
add_action( \'wp_head\', function() {
?>
jQuery(document).ready(function($) {
$( "#date_added" ).datepicker();
});
<?php
});
一旦您能够实现jQuery datepicker,就有一些关于如何实现该日期的时区偏移的示例。谷歌是你的朋友
stackoverflow).
Or... leave the input as GMT and store as timezone offset
然而,需要注意的是,如果您想根据特定的时区偏移量调整用户输入的内容,可以将默认值作为GMT,并根据偏移量进行调整。请记住,这不是“最佳做法”,因为日期/时间实际上应该存储为GMT,并在显示时进行调整。