日期时间选取器、时间戳和元查询

时间:2013-01-18 作者:Michael Thomas

我有一个带有日期选择器的自定义元框。datepicker在我的数据库中为太平洋标准时间2013年1月17日晚上10点的事件输出2013年1月17日10:00。

$eventlist = new WP_Query(array(
    \'post_type\' => \'events\',
    \'posts_per_page\' => 5,
    \'order\' => \'asc\',
    \'orderby\' => \'meta_value\',
    \'meta_key\' => \'datetime\',
    \'meta_query\' => array(
        array(
            \'key\' => \'datetime\', // Check the start date field
            \'value\' => date("Y-m-d H:i:s"),  
            \'compare\' => \'>=\', 
            \'type\' => \'DATETIME\' 
        )
    ),
));
问题是,在太平洋标准时间下午4点,活动消失了,这让我相信它在某处认为是UTC,并让帖子再见。我在哪里可以找到这个问题,如何解决它?

1 个回复
SO网友:Stephen Harris

WordPress为内部计算将php时区设置为UTC。太平洋标准时间下午4点,date() 将生成一个日期,其读数为UTC时间晚上10点。因此,该事件被视为过去。

有两种方法可以解决此问题。

(首选方法)以UTC格式在数据库中存储日期。以UTC格式处理所有日期计算,并在输出时转换为所需的时区(前端和后端)。

使用date_i18n()用于创建要查询的日期(因为这将根据您的博客时区设置日期)。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post