2012-04-27 2 views
-1

У меня есть массив Date, как этотХотите текущий месяц Все даты в PHP

$dateArray = array('2012-04-11','2012-04-29','2012-04-26','2012-04-23','2012-03-21','2012-07-23','2012-12-19','2012-04-27','2012-05-12','2012-05-27','2012-05-28'); 

и им с помощью кода для фильтрации этот массив является

, но это не работает

$start_date= date('Y-m-d',strtotime('first day of this month')) ; 
$end_date =date('Y-m-d',strtotime('first day of next month')) ; 

$month = array(); 

foreach ($dateArray as $dates) 
{ 
$dateTimes = strtotime($dates); 

if (($start_date >= $dateTimes) && ($end_date <= $dateTimes)) 
{ 
    $month[]= $dates; 
} 
} 
var_dump($month); 

но это не работает

+0

Какая связь с пурпуром? – Alexandre

ответ

0

Привет Если вы хотите показать только даты из массива, имеющих текущий месяц, то

foreach($dateArray AS $dateArr){ 

     if(date('M') == date('M' , strtotime($dateArr))){ 
      echo $mnthDate[] = $dateArr;echo "<br/>"; 
     } 
    } 

Иначе, если же хотите проверить, как год и месяц же, как текущий год и месяц.

foreach($dateArray AS $dateArr){ 
     if((date('M') == date('M' , strtotime($dateArr))) && (date('Y') == date('Y' , strtotime($dateArr)))){ 
      $yrDate[] = $dateArr;echo "<br/>"; 
     } 
    } 
1

Вам необходимо сравнить временные метки unix для правильного сравнения:

$dateArray = array('2012-04-11','2012-04-29','2012-04-26','2012-04-23','2012-03-21','2012-07-23','2012-12-19','2012-04-27','2012-05-12','2012-05-27','2012-05-28'); 
$start_date = strtotime('first day of this month') ; 
$end_date = strtotime('first day of next month') ; 

$month = array(); 

foreach ($dateArray as $dates) 
{ 
    $dateTimes = strtotime($dates); 

    if (($start_date >= $dateTimes) && ($end_date <= $dateTimes)) 
    { 
     $month[]= $dates; 
    } 
} 
var_dump($month); 
+0

Я попытался 'if ((time() - (26 * 24 * 60 * 60)> = $ dateTimes) && (time() + (5 * 24 * 60 * 60) <= $ dateTimes))' –

+0

, но все еще не работает –

Смежные вопросы