2013-10-16 2 views
0

En fait ce que je voulais quelque chose comme ça, un tableau commeGénérer une date hebdomadaire chaque année

Array 
(
    [20131020] => October 20 2013 
    [20131027] => October 27 2013 
    [20131103] => November 3 2013 
    [20131110] => November 10 2013 
) 

où les indices sont les dates le format yyyy-mm-dd et la valeur correspondante de chaque indice est le m-dd-yyyy équivalent qui est montré ci-dessus. Peut-il être généré en PHP de telle sorte que je peux générer des dates hebdomadaires de chaque année et sur les années à venir? Aussi un autre tableau qui ressemblera à ceci,

Array 
(
    [20131020] => October 20 2013 
     array(
      [20131020] = October 20 2013, 
     [20131021] = October 21 2013, 
     [20131022] = October 22 2013, 
     [20131023] = October 23 2013, 
     [20131024] = October 24 2013, 
     [20131025] = October 25 2013, 
     [20131026] = October 26 2013, 
    ) 
    [20131027] => October 27 2013 
     array(
     [20131020] = October 27 2013, 
     [20131021] = October 28 2013, 
     [20131022] = October 29 2013, 
     [20131023] = October 30 2013, 
     [20131024] = October 31 2013, 
     [20131101] = November 01 2013, 
     [20131102] = November 02 2013, 
    ) 
) 

Je ne trouve pas de requête similaire avec ceci donc j'en ai fait un à la place. Toute aide est appréciée. Merci.

+2

PHP peut faire beaucoup de choses avec Rendez-vous. Regardez dans ['DateTime()'] (http://us3.php.net/manual/fr/book.datetime.php) pour commencer. –

+2

Mais qu'est-ce que ça doit faire avec sql? – geomagas

Répondre

1

Cela devrait vous aider à démarrer:

$date  = new DateTime('2013-10-20'); 
$interval = new DateInterval('P1W'); 
$end  = new DateTime('2015-10-30'); 
$array = array(); 

while($date < $end){ 
    $array[$date->format('Ymd')] = $date->format('F j, Y'); 
    $date->add($interval); 
} 

print_r($array); 
+0

Comment vais-je faire de la valeur de $ date la date de cette semaine? J'ai essayé d'utiliser la date aujourd'hui mais cela donne des résultats incorrects. La valeur de «$ date» peut-elle être dynamique de telle sorte que ce sera la date de cette semaine, par exemple, ce sera «2013-13-20» cette semaine et ensuite changera en «2013-10-20» la semaine prochaine? –

+0

Vous pouvez faire: '$ date = new DateTime ('dernier dimanche');' ou '$ date = new DateTime ('next dimanche');' pour définir la date de début au dimanche précédent ou suivant. – keithhatfield

0

Commencez simplement avec une date et ajoutez 7 jours jusqu'à ce que vous vouliez arrêter.

Par exemple ($dates comprendra toutes les semaines à partir d'aujourd'hui pour le reste de l'année):

$theDate = time(); 
$dates = array(); 

while (date('Y', $theDate) == '2013') { 
    $dates[] = $theDate; 
    $theDate = strtotime('+7 days', $theDate); 
} 
Questions connexes