J'ai un calendrier PHP qui répertorie tous les jours du mois dans un tableau. Avant le premier jour du mois, j'ai les numéros du mois précédent et après le dernier jour du mois, les numéros des jours pour le mois à venir.Comment créer une fonction permettant de déterminer les dates du dernier jour du mois précédent?
Voici une photo du calendrier sous sa forme actuelle. Comme vous pouvez le voir les chiffres gris bas fonctionnent très bien, mais les chiffres précédant le premier jour du mois sont des nombres négatifs et devraient plutôt apparaître comme '29, 30'
Les chiffres après le dernier jour du mois étaient simplement '32, 33,34 'par exemple, donc je viens de créer une instruction if qui vérifie si le nombre est supérieur au nombre total de jours du mois en cours et si oui, soustraire le nombre total de jours dans le mois de '32' par exemple, ce qui le ferait alors apparaître comme '1,2,3'.
if ($day > $total_days_of_current_month) {
echo '<td>' . ($day - $total_days_of_current_month) . ' </td>'; // for example,33-31=2
}
Mon problème est la création d'une instruction if qui, d'une manière ou d'une autre, connaît les derniers jours du mois précédent. Le problème est que certains mois ont 30 jours et d'autres 31 jours. Aussi, le mois de février et les années bissextiles sont un problème. Est-ce que quelqu'un sait une déclaration if, donc je peux le faire apparaître comme '28, 29,30 'du mois précédent?
J'utilise ce calendrier php: http://iambari.com/2009/05/05/create -an-event-calendar-using-php-et-jquery/et je n'arrive pas à comprendre comment implémenter votre solution. Je ne peux pas savoir où l'ajouter. – zeckdude
Eh bien, si vous êtes en train de pirater un script déjà existant, cela pourrait être un peu difficile. Ma réponse précédente montre simplement une manière différente de construire la table entière du calendrier, ce qui évite tous les problèmes que vous rencontrez. Ma solution est de progresser à travers les dates réelles un jour à la fois et de trouver simplement comment l'afficher, au lieu de passer par les numéros 1 - 31 et essayer de comprendre quel jour il est. Vous devrez probablement réécrire de grandes parties de votre script actuel afin de le faire de cette façon. – deceze
Commencez les jours à partir du dernier dimanche au plus tard le premier jour du mois en cours plutôt qu'à partir du premier jour du mois. Cela corrige tout. –