获取Laravel过去12个月的数据()

时间:2015-04-23 19:55:35

标签: php laravel

我试图按月滚动返回我的用户周年纪念日数,我将在flot图表中显示。

我想我几乎已经弄明白了,但我正在努力让我的专栏格式与比较月相匹配。

//return an array of the last 12 months.
for ($i = 1; $i <= 12; $i++) { 
  $months[] = date("Y-m", strtotime( date( 'Y-m-01' )." -$i months"));  
 }

//$months dumps as:  array(12) { [0]=> string(7) "2015-03" ...}

// find members where the anniversary column matches the $months[$i]
foreach ($months as $key => $value) {
  $renewals[] = User::where('anniversary',  '=', $value)->count();  
}

周年纪念栏的格式为2014-4-30。如何抓住该列的'Y-m'与$ month进行比较?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

  $renewals[] = User::where('anniversary', 'LIKE', $value.'%')->count();  

这将接受任何一天,只匹配月份和年份。当然,如果不使用LIKE,可能有更好的方法来实现这一目标。

或者你可以得到一个包含第一天和最后一天的月份的数组,并使用Laravels whereBetween方法。

$renewals[] = User::whereBetween('anniversary', array($firstDay, $lastDay))->count();