2016-07-26 60 views
-2

Unten ist die Ausgabe, die ich in PHP will.Wie erstellt man innerhalb von 2 verschiedenen Tagen in PHP 15 Tage Array?

Angenommen, ich übergebe die zwei verschiedenen Daten in einer Funktion.

können sagen, ich „01/01/2016 to 07/25/2016

In Funktion übergeben
function bunch_days15($date1, $date2){ 
} 

Wie kann ich die folgenden Ergebnisse von 15 Tagen bekommen?

array{ 

    [0] => { 

      [0] 01/01/2016 
      [1] 01/15/2016 
     } 

    [1] => { 

     [0] 01/16/2016 
     [1] 01/31/2016 
    } 

    [2] => { 

      [0] 02/01/2016 
      [1] 02/15/2016 

     } 

    [3] => { 

     [0] 02/16/2016 
     [1] 02/28/2016 
    } 
} 

Und soo

Bitte lassen Sie mich durch gemeinsame Funktionen kennen, in denen ich zwei verschiedenen Daten übergeben und es wird Array in der Menge von 15 Tagen Ergebnisse zurück.

+0

Ein gültiger Funktionsname beginnt mit einem Buchstaben oder einem Unterstrich, durch eine beliebige Anzahl von Buchstaben gefolgt, Zahlen oder Unterstrichen. Ändern Sie also Ihre Funktion 15daysBunch ($ date1, $ date2) in eine gültige. –

+0

Fertig. Danke für die Updates .. –

+0

@montupepavanshi 1 + 15 sollte 16 richtig sein, wie wieder 15? ähnlich 17 + 15 – Thamilan

Antwort

0
function daysBunch($date1, $date2){ 
    $temp_date = $date1; 
    $days = array(); 
    $i = 0; 
    while(1){ 
     $next_date = date('m/d/Y', strtotime("$temp_date +14 days")); 
     if(strtotime($next_date) > strtotime($date2)){ 
      break; 
     } 
     $days[$i][] = $temp_date; 
     $days[$i][] = $next_date; 
     $temp_date = date('m/d/Y', strtotime("$next_date +1 days")); 
     $i++; 
    } 
    return $days; 
} 

$d1 = "01/01/2016"; 
$d2 = "07/25/2016"; 
var_dump(daysBunch($d1, $d2)); 

N. B: Für 2016.01.01 Starttermin wird es Ihnen 2016.01.15 ähnlich geben für 2016.01.16 wird es 2016.01.30 zeigen.

+0

lassen Sie mich wissen, ob das für Sie funktioniert :) –

+0

Einige letzte Tage kommen nicht in Berechnungen .. und ich möchte nicht verschiedene Monate in der gleichen Anordnung. Danke –

0

Hier ist meine Funktion

function bunch_days15($date1, $date2){ 

$startDate = new DateTime($date1); 
$endDate = new DateTime($date2); 
$mArray = array(); 

while ($startDate <= $endDate) 
{ 
    $row = array(); 
    $row[] =$startDate->format("Y-m-01"); 
    $row[] = $startDate->format("Y-m-15"); 

    $mArray[] = $row; 

    $row = array(); 
    $row[] = $startDate->format("Y-m-16"); 
    $row[] = $startDate->format("Y-m-t"); 

    $mArray[] = $row; 

    $startDate = $startDate->modify('first day of next month');; 
} 
return $mArray; 

}

print_r(bunch_days15('2015-01-01','2016-06-08')); 
+0

Es sollte unabhängig von Jahr sein. Das Jahr könnte 2015 oder 2014 oder so sein. das funktioniert nur für 2016 .. !! Es sollte in jedem Jahr funktionieren, das ich passiere. –

+0

Überprüfen Sie diese modifizierte Version meiner Funktion –

+0

Ich frage mich, es funktioniert. Vielen Dank ! –