Bonjour,

je poste ce sujet car je souhaiterais faire quelque chose en PHP, mais je ne sais pas du tout comment m'y prendre.
Je souhaiterais récupérer le nom des 12 derniers mois. Par exemple aujourd'hui on est en mars, et je souhaiterais récupérer le nom des mois derniers (Février, Janvier, Décembre, Novembre...), mais je ne sais pas du tout comment y faire. J'ai vu qu'il falait utiliser la fonction mktime mais je ne comprend pas comment l'utiliser.
Donc si quelqu'un peut m'aider, je le remercie.

Merci à toutes les personnes qui prendront le temps de m'aider.

7 réponses


Balbert
Réponse acceptée
<?php
$mois = [
    "Janvier", 
    "Février", 
    "Mars", 
    "Avril", 
    "Mai", 
    "Juin", 
    "Juillet", 
    "Août", 
    "Septembre", 
    "Octobre", 
    "Novembre",
    "Décembre"
];

$index = ((int) date("m")) - 1;
$i = 0;
$ordre = array();

while (++$i < 12) {
    if (--$index < 0) {
        $index = 11;
    }
    $ordre[] = $mois[$index];
}

var_dump($ordre);

Je pense que t'as compris la logique, il te suffira de faire une fonction après et c'est bon :)

PhiSyX
Réponse acceptée

Yop.

Tu extrais une portion de ton tableau $mois à partir du mois courant. (avec array_slice($mois, 0, $moiscourant) tu peux le faire).
Dans un premier temp, le résultat te retournera: (ici le mois courant est 3:"mars")

Array
(
    [0] => Janvier
    [1] => Fevrier
    [2] => Mars
)

Il te faudra alors récupérer les autres mois (toujours à partir du mois courant, toujours avec array_slice($mois, $moiscourant))

Array
(
    [0] => Avril
    [1] => Mai
    [2] => Juin
    [3] => Juillet
    [4] => Aout
    [5] => Septembre
    [6] => Octobre
    [7] => Novembre
    [8] => Décembre
)

Il te faudra ensuite inversé l'ordre des tableaux (avec array_reverse($tableau)) et les fusionner (avec array_merge) et tu auras le résultat souhaité:

Array
(
    [0] => Mars
    [1] => Fevrier
    [2] => Janvier
    [3] => Décembre
    [4] => Novembre
    [5] => Octobre
    [6] => Septembre
    [7] => Aout
    [8] => Juillet
    [9] => Juin
    [10] => Mai
    [11] => Avril
)

Voilà, 4 lignes de code (plus le tableau des mois: 20 en tout).

Salut j´ai pas dev depuis des mois mais après une petite réflexion je peux te donner une idée, mais c'est un code assez barbare et long :/...
$date définie la date du mois actuel avec la fonction date.
et avec un if si la date est égal à Mars cela affiche Mars Février Janvier.. et un if pour chaque mois après tu peux trouver autre chose...
Bonne soirée.

Quel est le problème ?


$mois = [
    "Janvier", 
    "Fevrier", 
    "Mars", 
    "Avril", 
    "Mai", 
    "Juin", 
    "Juillet", 
    "Aout", 
    "Septembre", 
    "Octobre", 
    "Novembre",
    "Décembre"
];
unset($mois[((int) date("m")) - 1]);
var_dump($mois);

Bonjour,merci pour vos réponses.
Merci JeremDevWeb pour votre réponse, je vais utiliser votre méthode si je n'arrive pas à en trouver une autre, car elle est simple.
Merci Balbert pour votre réponse, je souhaite tout simplement affiché les mois précedent dans l'ordre automatiquement. Par exemple on est en mars, je souhaite donc que ça m'affiche février, janvier, décembre, novembre... et si on était en juillet je souhaiterais que ça m'affiche juin, mai, arvril...
Si quelqu'un a une solution, je le remercie.

Merci beaucoup pour votre réponse Balbert, j'ai réussi à faire ce que je voulais à l'aide de votre code. Merci beaucoup.

Merci beaucoup Physix pour votre réponse.