Comment écrire un calendrier php pour un mois et un an ? Calendrier des charges php

À la veille du nouvel an, une tâche très triviale s'est présentée - créer un site de calendrier, où pour chaque mois, il était nécessaire d'afficher son propre calendrier pendant un mois. La première étape pour résoudre le problème a été la recherche de solutions toutes faites. Après avoir parcouru une douzaine de solutions proposées sur Internet, le choix était fait. Certaines versions se sont avérées totalement inopérantes, d'autres trop lourdes - il aurait fallu quasiment les « découper » pour obtenir le résultat souhaité. Voyons donc comment écrire un calendrier simple en php.

La base du script a été trouvée sur Internet, des erreurs ont été corrigées, quelque chose a été complété, en particulier, la fonctionnalité de mise en évidence des week-ends avec une classe css distincte a été ajoutée.

Réalisation d'un calendrier mensuel en pur PHP sans utilisation de mySQL, jQuery, etc. est donné ci-dessous :

"; // affiche les jours de la semaine $ headers = array (" Lun "," Mar "," Mer "," Jeu "," Ven "," Sam "," Dim "); $ calendar. =" "; pour ($ head_day = 0; $ head_day<= 6; $head_day++) { $calendar.= ""; $ calendrier. ="

". $ titres [$ head_day]."
"; $ calendrier. ="";) $ calendrier. =""; // définit le début de la semaine sur lundi $ running_day = date (" w ", mktime (0,0,0, $ mois, 1, $ année)); $ running_day = $ running_day - 1; if ($ running_day == -1) ($ running_day = 6;) $ days_in_month = date ("t", mktime (0,0,0, $ month, 1, $ year)); $ day_counter = 0; $ days_in_this_week = 1; $ dates_array = array (); // première ligne du calendrier $ calendar. = " "; // affiche les cellules vides pour ($ x = 0; $ x< $running_day; $x++) { $calendar.= ""; $ days_in_this_week ++;) // nous avons atteint des nombres, nous les écrirons dans la première ligne pour ($ list_day = 1; $ list_day<= $days_in_month; $list_day++) { $calendar.= ""; // écris le nombre dans la cellule $calendrier. ="
". $ list_day."
"; $ calendrier. =""; // atteint le dernier jour de la semaine if ($ running_day == 6) (// ferme la ligne $ calendar. =""; // si le jour n'est pas le dernier du mois, démarre la ligne suivante if (($ day_counter + 1)! = $ days_in_month) ($ calendar. =" ";) // réinitialiser les compteurs $ running_day = -1; $ days_in_this_week = 0;) $ days_in_this_week ++; $ running_day ++; $ day_counter ++;) // afficher les cellules vides à la fin de la dernière semaine si ( $ jours_dans_cette_semaine< 8) { for($x = 1; $x <= (8 - $days_in_this_week); $x++) { $calendar.= " ";)) $ calendrier. =""; $ calendrier. =""; return $calendrier;)?>

En entrée, la fonction draw_calendar reçoit le numéro ordinal du mois et de l'année. Le résultat de l'exécution de la fonction est le code html du calendrier pour le mois spécifié. L'utilisation de la fonction ci-dessus n'est pas difficile, et même un débutant en développement Web pourra le faire. L'exemple ci-dessous affichera le calendrier pour janvier 2016.

janvier "16

L'affichage de la signature du calendrier, qui comprend le nom du mois et de l'année, n'a délibérément pas été inclus dans la fonction afin qu'il puisse être librement modifié, voire supprimé.

Calendrier php pour l'année

À partir de la fonction ci-dessus, vous pouvez facilement obtenir un script php pour un calendrier pour un an, et pour tout. Pour cela, il suffit d'itérer sur tous les mois en boucle et d'appeler pour chacun d'eux la fonction d'affichage du calendrier d'un mois.

Cependant, dans ce cas, vous devrez créer un tableau avec une liste des noms des mois en russe, car vous ne pouvez obtenir les noms des mois à partir de php qu'en anglais.

Le code dans ce cas sera le suivant :

"Janvier", 1 => "Février", 2 => "Mars", 3 => "Avril", 4 => "Mai", 5 => "Juin", 6 => "Juillet", 7 => " août ", 8 =>" septembre ", 9 => " octobre ", 10 => " novembre ", 11 => " décembre "); pour ($ mois = 1 ; $ mois<= 12; $month++) { ?>

"16

Les exemples donnés dans cet article peuvent être téléchargés depuis le github.

La bibliothèque Zap Cal est une bibliothèque PHP open source pour la lecture et l'écriture de fichiers iCalendar. La bibliothèque est en développement depuis plus de 10 ans et prend en charge le programme Zap Calendar, une application open source pour le CMS Joomla, et plus récemment le projet de validation iCalendar sur site. Il est maintenant disponible en tant que bibliothèque autonome pour les développeurs PHP.

La bibliothèque Zap Calendar iCalendar est une bibliothèque PHP pour prendre en charge la norme iCalendar (RFC 5545). Plusieurs exemples de lecture et d'écriture de fichiers iCalendar sont inclus dans la bibliothèque

Cette bibliothèque PHP permet de lire et d'écrire des flux et des fichiers au format iCalendar. Les caractéristiques de la bibliothèque comprennent :

  • Prise en charge en lecture ET en écriture des fichiers iCalendar
  • Création et manipulation basées sur des objets de fichiers iCalendar
  • Prend en charge l'extension de RRULE à une liste de dates répétitives
  • Prend en charge l'ajout d'informations de fuseau horaire au fichier iCalendar

Toutes les données iCalendar sont stockées dans une arborescence d'objets PHP. Cela permet d'ajouter n'importe quelle propriété au flux iCalendar sans nécessiter d'appels de fonction de bibliothèque spécialisée. Avec le pouvoir vient la responsabilité. Des propriétés manquantes ou invalides peuvent rendre le fichier iCalendar résultant invalide ..

Voici un exemple de programme PHP pour créer un fichier iCalendar à événement unique :

$ title = "(! LANG : événement simple"; // date/time is in SQL datetime format $event_start = "2020-01-01 12:00:00"; $event_end = "2020-01-01 13:00:00"; // create the ical object $icalobj = new ZCiCal(); // create the event within the ical object $eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode); // add title $eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $title)); // add start date $eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($event_start))); // add end date $eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($event_end))); // UID is a required item in VEVENT, create unique string for this event // Adding your domain to the end is a good way of creating uniqueness $uid = date("Y-m-d-H-i-s") . "@demo.. $uid)); // DTSTAMP is a required item in VEVENT $eventobj->addNode(new ZCiCalDataNode("DTSTAMP:" . ZCiCal::fromSqlDateTime())); // Add description $eventobj->addNode(new ZCiCalDataNode("Description:" . ZCiCal::formatContent("This is a simple event, using the Zap Calendar PHP library. " .."))); // write iCalendar feed to stdout echo $icalobj->export();!}

14 sept. 2014

Il existe des situations dans lesquelles vous ne pouvez pas utiliser un composant créé en JavaScript. En règle générale, il s'agit de cas où vous avez besoin de la possibilité non pas d'automatiser la sélection d'une date sous forme HTML, mais de la possibilité de lier certains événements survenus ou prévus à des dates futures. Il peut s'agir du nombre de nouveautés à une date précise, du nombre de produits commandés ou d'achats effectués dans une boutique en ligne, etc. Celles. dans de tels cas, il devient évident qu'il existe un besoin d'une connexion entre le calendrier et la base de données afin d'obtenir certaines informations pour une certaine date. Bien sûr, il serait possible de créer un calendrier en JavaScript et d'utiliser Ajax pour obtenir des données sur la présence de certains événements, mais comme le montre la pratique, une telle solution n'est pas optimale. Par conséquent, ce composant de calendrier sera développé en PHP.

Les paramètres de style du calendrier sont contenus dans le fichier calendrier.css... Et le script PHP est dans le fichier calendrier.classe.

Pour travailler avec le calendrier, vous devez ajouter le code suivant au module dont vous avez besoin :

// Inclut le module require_once (dirname (__FILE__). "/Calendar.class.php"); // Tableau avec des dates d'événement au format Unix $ Events = array (1409518800, 1409778000,1410210000,1410901200,1411592400); // Récupère la date s'il y a $ date = (isset ($ _ REQUEST ["date"])) ? $ _REQUEST ["date"] : "" ; // Création d'un objet calendrier $ calendar = new Calendar ($ date, $ Events); // Affiche le calendrier echo $ calendar-> ShowCalendar ();

Vous pouvez modifier le code source de ce calendrier en fonction de vos besoins. Vous pouvez télécharger le composant de calendrier.

Vous avez aimé l'article ? A partager entre amis :