Php 如何修改此查询,使开始/结束日期以天为单位,而不是以精确的时间为单位?
我使用下面的查询根据使用UNIX时间戳的开始日期和结束日期获取帖子 目前,只有当开始时间晚于今天时,才会返回结果。例如,如果是下午5:00,而开始日期是下午6:00,则它将不会接收该文件。我希望在今天的任何时间(从午夜午夜到今晚午夜)作为开始日期。 有人能告诉我如何更新我的代码以使其正常工作吗Php 如何修改此查询,使开始/结束日期以天为单位,而不是以精确的时间为单位?,php,mysql,wordpress,timestamp,Php,Mysql,Wordpress,Timestamp,我使用下面的查询根据使用UNIX时间戳的开始日期和结束日期获取帖子 目前,只有当开始时间晚于今天时,才会返回结果。例如,如果是下午5:00,而开始日期是下午6:00,则它将不会接收该文件。我希望在今天的任何时间(从午夜午夜到今晚午夜)作为开始日期。 有人能告诉我如何更新我的代码以使其正常工作吗 $current_time等于1305132894,即今天东部时间5:54 'meta_query' => array( array( 'key'
$current_time
等于1305132894
,即今天东部时间5:54
'meta_query' => array(
array(
'key' => 'start_date',
'value' => $current_time,
'compare' => '<'
),
array(
'key' => 'end_date',
'value' => $current_time,
'compare' => '>'
)
)
'meta\u query'=>数组(
排列(
'键'=>'开始日期',
“值”=>$当前时间,
'比较'=>'
)
)
如果您今天只需要它,您可以使用:
$minDate = strtotime('midnight today');
$maxDate = strtotime('midnight tomorrow -1 second');
或者
$minDate = mktime(0,0,0);
$maxDate = mktime(11,59,59);
和的一些组合应该会起作用。考虑您的示例:
$current\u time=1305132894
这应该回答您的问题:
$date_current = date("Y-m-d",1305132894); //2011-05-11
$date_midnight = strtotime($date_current . "00:00:00"); //1305061200 that means: 2011-05-11 00:00:00
因此,将$current time(当前时间)替换为$date_midnight(日期)\u midnight(午夜),从昨晚午夜开始,您将有今天的任何时间。这似乎可行(只要返回当天和00:00:00),但我如何使开始日期知道是今天?例如,由于start_date大于$date_midnight,因此在结果中不会提取它。我没有注意到其他答案。这更符合你的问题。所以他们已经回答说:)好运气这似乎奏效了,不过现在是格林尼治标准时间。如何通过CST将其设置为go?例如,如果我将时间设置为2011年5月12日晚上8:00,它不会拾取今天发生的结果。我如何用格林尼治标准时间的X数字来抵消小时数?最好使用
date\u default\u timezone\u set('America/Chicago')
还可以将时区参数传递给strotime()
,例如strotime(“今天午夜GMT-0500”)
、strotime(“今天午夜CST”)
和strotime(“今天午夜CDT”)