15 votes

Comment créer un tableau de noms de jours de la semaine en php ?

Je sais que c'est stupide, mais comment dois-je faire ? Je voudrais créer un tableau de sept jours par le biais de PHP. Ce que je veux dire, c'est qu'il s'agit des sept jours de la semaine. Je ne veux pas les écrire comme lui :

sunday monday tuesday ...etc

et les jours commenceront à partir du dimanche, ce qui signifie que si nous sommes aujourd'hui le 29 mars (lundi), le système saisit automatiquement la date actuelle et crée un tableau de jours de semaine à partir du dimanche.

le tableau sera toujours de cette façon

 $weakarray=("sunday","monday",......,"saturday");

55voto

TiuTalk Points 3797

Ça pourrait marcher

$timestamp = strtotime('next Sunday');
$days = array();
for ($i = 0; $i < 7; $i++) {
    $days[] = strftime('%A', $timestamp);
    $timestamp = strtotime('+1 day', $timestamp);
}

52voto

Yacoby Points 29771

S'ils doivent toujours commencer par un dimanche, pourquoi voulez-vous créer le tableau de manière dynamique ? Qu'y a-t-il de mal à faire cela ?

$days = [
    'Sunday',
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday'
];

Toute autre solution rendra votre code plus difficile à comprendre et, dans ce cas, le faire de manière dynamique semble excessif.

14voto

Rumen Tabakov Points 141

Réponse un peu tardive, modification de la réponse acceptée comme la meilleure réponse.

<?php
    $days = array();
    for ($i = 0; $i < 7; $i++) {
        $days[$i] = jddayofweek($i,1);
    }
?>

Résultat :

array(7) { 
  [0]=> "Monday"
  [1]=> "Tuesday" 
  [2]=> "Wednesday" 
  [3]=> "Thursday" 
  [4]=> "Friday" 
  [5]=> "Saturday" 
  [6]=> "Sunday" 
}

Voir la page de PHP jddayofweek

3voto

codaddict Points 154968

Essayez :

for($i=1;$i<8;$i++)
$weekdays [] = date("l",mktime(0,0,0,3,28,2009)+$i * (3600*24));
var_dump($weekdays);

Sortie :

C:\>php b.php
array(7) {
  [0]=>
  string(6) "Sunday"
  [1]=>
  string(6) "Monday"
  [2]=>
  string(7) "Tuesday"
  [3]=>
  string(9) "Wednesday"
  [4]=>
  string(8) "Thursday"
  [5]=>
  string(6) "Friday"
  [6]=>
  string(8) "Saturday"
}

3voto

cheelahim Points 1147

Je considère que la carte de tableau est un moyen plus élégant d'obtenir le même résultat.

$days = array_map(function ($day) {
    return strtolower(date_create('Sunday')->modify("+$day day")->format('l'));},
    range(0, 6)
);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X