Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php数组中提取月份数据_Php - Fatal编程技术网

从php数组中提取月份数据

从php数组中提取月份数据,php,Php,我有一个包含日期的数组,我想将该数组的子集设置为月份? 数组中的日期格式为:$dates=array('2010-11-01',…)注意:它不仅支持您的日期格式,还支持许多其他日期格式。您也可以用数字或字母表示月份。 您可以这样循环它: $arr = array( '2009-1-1', '2009-2-1','2009-3-1','2009-3-1' ); $output = array(); foreach( $arr as $date ){ $output[date('m', s

我有一个包含日期的数组,我想将该数组的子集设置为月份?
数组中的日期格式为:
$dates=array('2010-11-01',…)

注意:它不仅支持您的日期格式,还支持许多其他日期格式。您也可以用数字或字母表示月份。

您可以这样循环它:

$arr = array( '2009-1-1', '2009-2-1','2009-3-1','2009-3-1' );

$output = array();

foreach( $arr as $date ){
   $output[date('m', strtotime($date))][] = $date; 
}

print_r($output);
$output[date('y', strtotime($date))][date('m', strtotime($date))][] = $date;



您还可以使用月份名称:

$output[date('M', strtotime($date))][] = $date; 



就全年而言,你可以这样做:

$arr = array( '2009-1-1', '2009-2-1','2009-3-1','2009-3-1' );

$output = array();

foreach( $arr as $date ){
   $output[date('m', strtotime($date))][] = $date; 
}

print_r($output);
$output[date('y', strtotime($date))][date('m', strtotime($date))][] = $date;

我根本没有测试过这一点,但是假设数组$dates由时间戳组成,下面的方法应该可以工作


$months=array()
foreach($dates作为$date){
$months[日期('F',$date)][]=$date;
}

不需要使用date类。相反,我们可以使用
substr()
来获取YYYY-MM,并以此作为索引

$dates = array('2010-11-11', '2010-01-14', '2010-01-17', '2011-01-03');
$months = array();
foreach($dates as $date) {
  $month = substr($date, 0, 6);
  $months[$month][] = $date;
}
print_r($months);
:


你怎么回事啊?你试过什么?你的日期是如何格式化的?
2010-11-01
模棱两可。那是YYYY-MM-DD还是YYYY-DD-MM?预期结果是什么?从什么时候开始的2010年1月==2011年1月?:)@马可:这是一个例子。可能有人想要得到一个人的生日月聪明,然后没有必要为一年。无论如何,我们也可以每年都这样做。答案已编辑。