可能的问题:
时区的变化可能介于\'End_Time\'
和date( \'G:i\' )
.通话间隔时间的变化date( \'G:i\' )
和date( \'w\' )
.重复使用date( \'w\' )
功能一个元查询逻辑问题任何这些都可能是罪魁祸首。
The time zone problem
如果在
\'End_Time\'
自定义值与web服务器的时区不同,您可能需要更改
date( \'G:i\' )
调整时区更改。我不知道使用此电话的所有后果:
date_default_timezone_set(\'Europe/London\');
您可能应该在午夜(服务器时间)附近进行一些测试,以了解
date( \'G:i\' )
和
date( \'w\' )
正在返回并与典型
\'End_Time\'
来自帖子的自定义值。
<小时>
The date( \'w\' )
function
您反复检查,但服务器在午夜附近会发生什么?
if ( date( \'w\' ) == 0 ) {
else if ( date( \'w\' ) == 1 ) {
else if ( date( \'w\' ) == 2 ) {
else if ( date( \'w\' ) == 3 ) {
else if ( date( \'w\' ) == 4 ) {
else if ( date( \'w\' ) == 5 ) {
else if ( date( \'w\' ) == 6 ) {
接近午夜时,日期(“w”)中的值可能会更改。如果是这样的话,有可能
$args
未设置或设置为具有错误类别的值。
最好检查一下date( \'w\' )
只有一次:
$day_of_the_week = date( \'w\' );
if ( $day_of_the_week == 0 ) {
else if ( $day_of_the_week == 1 ) {
else if ( $day_of_the_week == 2 ) {
else if ( $day_of_the_week == 3 ) {
else if ( $day_of_the_week == 4 ) {
else if ( $day_of_the_week == 5 ) {
else if ( $day_of_the_week == 6 ) {
你真的不需要
if else if
东西因为你只是在改变
\'cat\'
参数,这应该做同样的事情,而不需要所有的键入。
$time = date( \'G:i\' );
// S M T W T F S
$day_of_the_week_categories = array( 17, 18, 12, 13, 14, 15, 16 );
$day_of_the_week = date( \'w\' );
// The Query
$the_query = new WP_Query( array(
\'cat\' => $day_of_the_week_categories[ $day_of_the_week ],
\'posts_per_page\' => 1,
\'offset\' => 0,
\'orderby\' => \'meta_value_num\',
\'order\' => \'ASC\',
\'meta_query\' => array(
array(
\'key\' => \'End_Time\',
\'value\' => $time,
\'compare\' => \'>\',
\'type\' => \'TIME\',
),
),
);
<小时>
Change in the time between calling date( \'G:i\' )
and date( \'w\' )
接近午夜(服务器时间)呼叫
date( \'G:i\' )
可能发生在周二
date( \'w\' )
可能发生在周三。可以通过将上面的代码更改为以下代码来解决此问题:
$now = time();
$time = date( \'G:i\', $now );
$day_of_the_week = date( \'w\', $now );
PHP
date()
函数从PHP获取时间
time()
作用通过对单个调用执行所有时间计算
time()
,
$time
和
$day_of_the_week
应该总是指同一时间和同一天。
<小时>
A meta query logic problem.
如果不直接在网站上工作并测试那里的帖子,这个问题很难诊断。所有日期和时间函数用于计算
\'End_Time\'
也用于计算
$time
和
$day_of_the_week
. 计算时可能会出现类似的午夜问题
\'End_Time\'
.