Conoscere giorni della settimana fra due date con php

maxnegri

Utente Attivo
12 Ott 2004
87
0
6
Ciao a tutti,
ho le seguenti righe:

PHP:
$datain="2019-05-12"; // data di arrivo
$dataout="2019-05-16"; // data di partenza
$day_number = date("w", strtotime($datain)); // conosci il giorno della settimana di arrivo 
$day_number2 = date("w", strtotime($dataout)); // conosci il giorno della settimana di partenza
PHP:
$day_number // giorno della settimana (Risultato 0 = domenica) data di arrivo selezionata.
PHP:
$day_number2 // giorno della settimana (Risultato 4 = giovedì)  data di partenza selezionata.
Ora ho la necessità di visualizzare anche i giorni della settimana compresi fra domenica e giovedì che in questo caso sarebbero: 1 lunedì, 2 martedì e 3 mercoledì. Come potrei fare?
Spero di essere stato chiaro nell'illustrazione. Grazie!
 

macus_adi

Utente Attivo
5 Dic 2017
1.310
88
48
IT/SW
Attraverso un ciclo aggiungendo 1 giorno alla data di arrivo < data partenza e stampi il giorno....
PHP:
$datain="2019-05-12"; // data di arrivo
$dataout="2019-06-16"; // data di partenza
$data_in=new DateTime($datain);
$data_out=new DateTime($dataout);
$diff=$data_out->diff($data_in);
//rappresenta il numero di giorni di attesa
echo $diff->days.'<br>';
$create_date=[];
for ($i=1;$i<=$diff->days;$i++) {
   $data_in->add(new DateInterval('P1D'));
   $create_date[]=
      [
         'date'=>$data_in->format('d/m/Y'),
         'day'=>$data_in->format('w'),
         'label_day'=>$data_in->format('l')
      ];
}
print_r($create_date);

/**
* METODO ALTERNATIVO "FUNZIONE"
* Funzione per calcolo di diff tra due date, dt1 deve essere minore di dt2
* Altrimenti implementare il controllo tra date
* @param string $dt1
* @param string $dt2
*
* @return array
*/
function get_diff_Date($dt1,$dt2){
   $data_in=new DateTime($dt1);
   $data_out=new DateTime($dt2);
   $diff=$data_out->diff($data_in);
   $create_date=[];
   for ($i=1;$i<=$diff->days;$i++) {
      $data_in->add(new DateInterval('P1D'));
      $create_date[]=
         [
            'date'=>$data_in->format('d/m/Y'),
            'day'=>$data_in->format('w'),
            'label_day'=>$data_in->format('l')
         ];
   }
   return $create_date;
}

get_diff_Date("2019-05-12","2019-05-18");
 

maxnegri

Utente Attivo
12 Ott 2004
87
0
6
Ciao, grazie mille sei un grande era quello che cercavo di fare ma non riuscivo. ;)