2016-06-07 5 views
0

Ich habe zwei Tage,PHP Druckdatum Unterschied in Zahlen nach zu Monat

2016-06-22 , 2016-07-11

Ich brauche das Datum in Zahlen beispielsweise zu drucken,

22,23,24,25,26,27,28,29,30,1,2,.....11

, wenn der Monat Juli ist bis August sollte es drucken

22,23,24,25,26,27,28,29,30,31,1,2,.....11

nach Monat auch in PHP.

Vielen Dank.

+2

Was haben Sie bisher versucht? Veröffentlichen Sie Ihre Versuche auch. –

+0

Sir Ich habe keine Ahnung, wie das geht, ich habe bis zu den Datumsunterschieden nur getan. – Crysis

+1

Mögliches Duplikat von [PHP: Gibt alle Daten zwischen zwei Daten in einem Array zurück] (http://stackoverflow.com/questions/4312439/php-return-all-dates-between-two-dates-in-an-array) –

Antwort

3

Dies wird für Sie arbeiten .. Look The DatePeriod class

Ein Datumszeitraum ermöglicht die Iteration über eine Reihe von Daten und Uhrzeiten, die in regelmäßigen Abständen in einem bestimmten Zeitraum wiederholt werden.

<?php 

$begin = new DateTime('2016-06-22'); 
$end = new DateTime('2016-07-11'); 
$end = $end->modify('+1 day'); 

$interval = new DateInterval('P1D'); 
$daterange = new DatePeriod($begin, $interval ,$end); 

foreach($daterange as $date){ 
    echo $date->format("d") . "<br>"; 
} 
?> 

anschauliches Beispiel: CLICK HERE

+0

danke das funktioniert auch – Crysis

+0

@Crysis anschauliches Beispiel: [HIER KLICKEN] (https://eval.in/584588) –

+0

Sehr geehrte @ Crysis können Sie die hilfreichste Antwort akzeptieren ... –

0

in mysql

select date_format(my_date_column, '%d$) from my_table 

in php

$date = new DateTime('2016-06-22'); 
echo $date->format('d'); 

Echo der Tagesnummer

1

Versuchen:

function createDateRangeArray($strDateFrom,$strDateTo) 
{ 

    // inclusive array of the dates between the from and to dates. 

    // could test validity of dates here but I'm already doing 
    // that in the main script 

    $aryRange=array(); 

    $iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2),  substr($strDateFrom,8,2),substr($strDateFrom,0,4)); 
    $iDateTo=mktime(1,0,0,substr($strDateTo,5,2),  substr($strDateTo,8,2),substr($strDateTo,0,4)); 

    if ($iDateTo>=$iDateFrom) 
    { 
     array_push($aryRange,date('d',$iDateFrom)); // first entry 
     while ($iDateFrom<$iDateTo) 
     { 
      $iDateFrom+=86400; // add 24 hours 
      array_push($aryRange,date('d',$iDateFrom)); 
     } 
    } 
    return $aryRange; 
} 

$arr = createDateRangeArray("2016-06-22","2016-07-11"); 
echo implode(",",$arr); 
+0

Check this: http://stackoverflow.com/a/4312491/2815635 – C2486

+0

danke das funktioniert auch – Crysis

3

Sie haben d zwischen Start- und Enddatum und drucken Sie es in Format iterieren Datum.

$fromDate = new DateTime('2016-06-22'); 
$toDate = new DateTime('2016-07-11'); 

$days = array(); 
while($fromDate <= $toDate) { 
    $days[] = $fromDate->format('d'); 
    $fromDate->modify('tomorrow'); 
} 

echo implode(',', $days);