2015-11-21 5 views
1

Я хочу получить третью субботу, и я использую функцию php для этого, что я знаю. Но я получаю неправильные данные, получая сообщение об ошибке. Вот мой код:Ошибка при получении третьей субботы

$frmdate = 2015-06-05; 
$todate = 2015-08-31; 

for ($date = strtotime($frmdate); $date <= strtotime($todate); $date = strtotime("+1 day", $date)) 
     { 
      $custom_day = date("Y-m-d", $date); 

      $custom_third_sat[] = date('Y-m-d', strtotime('third Saturday "'.$custom_day.'"')); 

     } 
     echo "<pre>"; 
     print_r($custom_third_sat); 

Где я ошибаюсь?

+0

[Check This] (https://3v4l.org/HKVqH) –

ответ

1

вы должны использовать of как third saturday of: попробовать этот

$custom_third_sat[] = date('Y-m-d', strtotime("third saturday of $custom_day")); 

ваш полный код может быть что-то вроде этого :

$frmdate = '2015-06-05'; 
$todate = '2015-08-31'; 
for ($date = strtotime($frmdate); $date <= strtotime($todate); $date = strtotime("+1 day", $date)) 
     { 
      $custom_day = date("Y-m-d", $date); 
if(!isset($custom_third_sat[date('Y-m-d', strtotime("third saturday of $custom_day"))])){ 
     $custom_third_sat[date('Y-m-d', strtotime("third saturday of $custom_day"))] = date('Y-m-d', strtotime("third saturday of $custom_day")); 
} 

     } 
     echo "<pre>"; 
     print_r($custom_third_sat); 
+0

прекрасно работает .... Я не знал об этом .. Так, спасибо за это .. !! –

0

Вы просто не хватает цитаты в датах

<?php 
$frmdate = '2015-06-05'; 
$todate = '2015-08-31'; 

for ($date = strtotime($frmdate); $date <= strtotime($todate); $date = strtotime("+1 day", $date)) 
    { 
    echo"assa"; 
     $custom_day = date("Y-m-d", $date); 

     $custom_third_sat[] = date('Y-m-d', strtotime('third Saturday "'.$custom_day.'"')); 

    } 
    echo "<pre>"; 
    print_r($custom_third_sat); 

>

6

Каждый месяц содержит только одну «третью субботу», поэтому не нужно делать больше циклов дней. Просто попробуйте этот код один раз.

$frmdate = "2015-06-05"; 
$todate = "2015-08-31"; 
$custom_third_sat=array(); 
for ($date = date("Y-m-01", strtotime($frmdate)); $date <= $todate; $date = date("Y-m-01",strtotime($date."+1 Month"))) { 
    if($date>$todate){ 
     break; 
    } 
    $t_date=date('Y-m-d', strtotime($date.' third Saturday')); 
    if($t_date>=$frmdate && $t_date<=$todate) 
    { 
     $custom_third_sat[] = $t_date; 
    } 

} 
echo "<pre>";print_r($custom_third_sat); 
Смежные вопросы