【发布时间】:2017-08-03 13:22:46
【问题描述】:
我目前正在使用下面的脚本来报告一个月内的事件开始和结束日期,因此使用“本月的第一天”和“本月的最后一天”
我不知道为什么,但任何从 3 月 1 日开始的事件都已包含在内,任何关于为什么会很棒的帮助。谢谢
<?php
global $wpdb;
$result = $wpdb->get_results ( "
SELECT
$wpdb->posts.post_title,
substring_index(GROUP_CONCAT(meta_value order by str_to_date(meta_value,'%Y-%m-%d %H:%i:%s')), ',', 1) as start_date,
substring_index(GROUP_CONCAT(meta_value order by str_to_date(meta_value,'%Y-%m-%d %H:%i:%s')), ',', -1) as end_date
FROM $wpdb->posts INNER JOIN $wpdb->postmeta
ON $wpdb->posts.id = $wpdb->postmeta.post_id
WHERE $wpdb->postmeta.meta_key='_EventStartDate' OR $wpdb->postmeta.meta_key='_EventEndDate'
GROUP BY $wpdb->postmeta.post_id
ORDER BY $wpdb->postmeta.meta_value
" );
foreach ( $result as $page ) {
$date1 = new DateTime($page->start_date);
$date2 = new DateTime($page->end_date);
if (strtotime($page->start_date) >= strtotime('first day of this month') && strtotime($page->start_date) < strtotime('last day of this month')) {
echo '<h2><div class="date-title">';
echo $page->post_title;
echo '</div><div class="date-date">';
echo '<span class="orderby">Order by ' . $date1->format('d-m-y') . '</span><span class="deliveryby"> For Delivery ' . $date2->format('d-m-y').'</span><br/>';
echo '</div></h2>';
}
}
?>
【问题讨论】:
-
由于
print date('Y-m-d',strtotime('first day of this month'));提供2017-03-01并且您没有显示预期和/或给定的数据,因此无法提供帮助。 -
除了不包括从 01-03 开始的日期外,没有其他错误。如果您查看月份视图并将开始日期更改为第二个它出现但将其更改回第一个并且它消失
-
这是我为帮助创建查询而创建的初始帖子 - stackoverflow.com/questions/41891324/… - 不确定这对您是否有帮助?