[PHP] Estrarre prossimi 4 lunedì

Jensen

Nuovo Utente
6 Set 2018
2
0
1
Salve, ho la necessità di estrarre dinamicamente i prossimi 4 lunedì dalla data odierna.
Ho scritto questo:

PHP:
<?php
$Lun1 = (strtotime("next Monday")); // timestamp del prossimo lunedì
$Lun2 = strtotime ( "+1 week" , strtotime ( $Lun1 ) ); // Secondo lunedì dopo il prossimo
$Lun3 = strtotime ( "+2 week" , strtotime ( $Lun1 ) ); // Terzo lunedì dopo il prossimo
$Lun4 = strtotime ( "+3 week" , strtotime ( $Lun1 ) ); // Quarto lunedì dopo il prossimo
echo ("Lunedì, " . date('d/m/Y', $Lun1)) . "<br />" ;
echo ("Lunedì, " . date('d/m/Y', $Lun2)) . "<br />" ;
echo ("Lunedì, " . date('d/m/Y', $Lun3)) . "<br />" ;
echo ("Lunedì, " . date('d/m/Y', $Lun4)) . "<br />" ;
?>
Mentre il primo me lo da corretto, dal secondo al quarto no. Sicuramente sbaglio io, ma capire dove :(
Questo il risultato del codice:

Lunedì, 10/09/2018
Lunedì, 13/09/0400
Lunedì, 20/09/0400
Lunedì, 27/09/0400

Grazie mille in anticipo.
 

Rikk73

Utente Attivo
7 Apr 2015
134
6
18
Arezzo
prova con una cosa del genere

Codice:
$base = new Datetime('now');
//echo $base->getTimestamp() . "<br />";

$Lun1 = strtotime("next Monday", $base->getTimestamp());
echo ("1 Lunedì, " . date('d/m/Y', $Lun1)) . "<br />" ;

$base->add(new DateInterval("P07D"));

$Lun2 = strtotime("next Monday", $base->getTimestamp());
echo ("2 Lunedì, " . date('d/m/Y', $Lun2)) . "<br />" ;
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Una cosa del genere.. provala e nel caso personalizzala in base alla guida che ti ho postato sopra, da cellulare è il massimo che sono riuscito a scrivere

Codice:
 <?php
    echo gmdate('j-m-y', strtotime('first monday'));
    echo gmdate('j-m-y', strtotime('second monday'));
    // ovviamente dovrai poi convertire le date o giocare con le combinazioni
?>

Inviato dal mio iPhone utilizzando Tapatalk
 
Ultima modifica:

Jensen

Nuovo Utente
6 Set 2018
2
0
1
Grazie dell'aiuto e scusate se non ho risposto prima...
Alla fine ho risolto (anche grazie a voi) tutto così:

PHP:
$Lun1 = (strtotime("next Monday")); // timestamp del prossimo lunedì
$Lun2 = (strtotime ( "+1 week" ,  $Lun1 )); // Secondo lunedì dopo il prossimo
$Lun3 = (strtotime ( "+2 week" , $Lun1 )); // Terzo lunedì dopo il prossimo
$Lun4 = (strtotime ( "+3 week" , $Lun1 ) ); // Quarto lunedì dopo il prossimo

$TXTLun1 = ("Lunedì, " . date("d/ m/ Y", $Lun1))  ;
$TXTLun2 = ("Lunedì, " . date("d/ m/ Y", $Lun2))  ;
$TXTLun3 = ("Lunedì, " . date("d/ m/ Y", $Lun3))  ;
$TXTLun4 = ("Lunedì, " . date("d/ m/ Y", $Lun4))  ;