数组输出和日期格式

时间:2013-05-24 11:25:42

标签: php arrays timestamp

我希望有人可以指出我正确的方向,我需要做什么。

我有一个mysql数据库,其中包含一个名为'StartDate'的日期值字段,其格式为'YYYY-MM-DD'。

所以,我使用 -

连接到数据库
$results = $wpdb->get_results( "SELECT * FROM wp_myEventDates ORDER BY `StartDate` ASC" );

我想按月分组事件,例如6月有10个事件,7月有12个事件 -

我使用了foreach循环并测试了几种方法来输出日期并使用了var_dump,但我不确定如何操作结果。

示例一:

$event_id = $myevent->StartDate;
// var dump from event id gives me 
string(10) "2013-04-04" 

示例二:

$event_id = $myevent->StartDate;  
$dateArray = getdate(strtotime($event_id));
$mythingmonth = array($dateArray['mon']);
foreach ($mythingmonth as $monthsplit =>$myvalue) {
var_dump($myvalue);
//var dump from myvalue this 
int(4)
}     

我100%肯定我会以错误的方式解决这个问题,我已经尝试过搜索和尝试但是我迷失了 - 所以如果有什么指针或建议可以看看,那就太棒了。

提前致谢。


2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT Month(startdate),count(id) as nrOfEvents
FROM wp_myEventDates
GROUP BY Month(startdate)

但是再次阅读你的问题,我不确定这是不是你想要的。你能描述一下预期的结果吗?

编辑:

如果您的活动持续数年,最好使用它:

SELECT Month(startdate),Year(startdate),count(id) as nrOfEvents
FROM wp_myEventDates
GROUP BY Month(startdate),Year(startdate)

答案 1 :(得分:0)

我对问题不是很清楚,但是如果你试图根据查询重新分组数据,我在这里有你的例子,

$event_id = array ("2013-04-04","2013-04-04","2013-05-04","2013-04-04","2013-06-04");
foreach($event_id as $value)
{
   $value = explode('-',$value);
   $month[$value[1]][] = 'hi'; // you can add ur event name here instead of 'hi'
}
var_dump($month);

vardump($ month)为您提供以下输出

array
 '04' => 
   array
     0 => string 'hi' (length=2)
     1 => string 'hi' (length=2)
     2 => string 'hi' (length=2)
 '05' => 
   array
     0 => string 'hi' (length=2)
 '06' => 
   array
     0 => string 'hi' (length=2)

和vardump($ month ['04']);会给你以下结果

array
 0 => string 'hi' (length=2)
 1 => string 'hi' (length=2)
 2 => string 'hi' (length=2)

而不是'hi'在foreach中可以添加作为查询结果的事件名称,您可以使用这种类型的数组按月收集事件