Depuis le début de mes études (vers la première année de DUT SRC), je sais que je vais m’orienter vers de la programmation Web. J’ai commencé en terminale avec de l’HTML et de l’ActionScript et j’ai progressivement utiliser du PHP (Hypertext Preprocessor) avec MYSQL et finalement du PHP5. Il est indéniable que le couple PHP/MYSQL fonctionne très bien et surtout qu’il est gratuit (Open-source). La version la plus récente de PHP est apriori la version 5.5 (au 06/09/2013). Je n’ai pas encore testé cette version, je suis à la version 5.3 qui semble stable, n’hésitez pas à bien vérifier les versions de PHP que vous souhaitez utiliser car disons que vous devez travailler pour un client qui a un serveur avec une vieille version de PHP par exemple la version 5.2 et vous codez tout votre site en 5.3, il se peut que certaines fonctions ne fonctionnent pas comme la fonction date_diff. Souvent par exemple lorsque que l’on prend un serveur ce n’est pas la dernière version de PHP qui y est installée. A vous de faire attention. Avoir la dernière version de PHP n’est pas absolument nécessaire c’est en fonction du projet. La plupart du temps les dernières versions apportent un lot de nouveautés mais prenez le temps de fouillez un peu pour voir si la version que vous souhaitez prendre n’est pas buggué ou pas stable.
Le ressources pour apprendre, s’améliorer sur PHP sont nombreuses, notre ami Google pourra facilement vous aider. Cependant je trouve que php.developpez.com donne de bonnes ressources. Voici quelques fonctions qui pourront vous aider
Exemple de code PHP5 pour la gestion des dates
Calcul du nombre de jours entre de 2 dates PHP
function calculer_calendrier_en_jours($Date_Debut, $Date_Fin) { $Informations_Jours = array(); $Annee_Debut = strtotime($Date_Debut); $Annee_Fin = strtotime($Date_Fin); $pstr_delta = $Annee_Fin-$Annee_Debut; $pstr_nb_Jours = intval($pstr_delta/86400)+1; $pstr_jour = $Annee_Debut; for($i = 0; $i < $pstr_nb_Jours; $i++) { $Informations_Jours[date('Ymd', $pstr_jour)] = date('d/m/Y', $pstr_jour); $pstr_jour += (60*60*24); } return $Informations_Jours; }
Cela renvoie un tableau associatif avec comme clé la date au format YYYYMMDD et la date au format DD/MM/YYYY pour la valeur associée. Un petit foreach ou l’utilisation d’un count et c’est parti !
Calcul du nombre de semaines entre de 2 dates PHP
function calculer_calendrier_en_semaines($Date_Debut, $Date_Fin) // --------------------------------------------------------------------------- { setlocale(LC_TIME,'fr'); $Boucle = $Date_Debut; $Informations_Semaines_Annee = array(); while ($Boucle <= $Date_Fin) { $Boucle_format = substr($Boucle, 0, 4).'-'.substr($Boucle, 4, 2).'-'.substr($Boucle, 6, 2); $Numero_Semaine = date("W", date2time($Boucle_format)); $Annee = date("o", date2time($Boucle_format)); $lbool_Sauter = false; switch($Numero_Semaine) { case 1: if (count($Informations_Semaines_Annee) > 1) { // On est sur une date qui est sur la semaine n°1 de l'année N+1 $lbool_Sauter = true; } break; case 52: if (count($Informations_Semaines_Annee) == 0) { // On est sur une date qui est sur la semaine n°52 de l'année N-1 $lbool_Sauter = true; } break; } if (!$lbool_Sauter) { if (!isset($Informations_Semaines_Annee[$Annee.$Numero_Semaine])) { $Informations_Semaines_Annee[$Annee.$Numero_Semaine]['ANNEE'] = $Annee; $Informations_Semaines_Annee[$Annee.$Numero_Semaine]['SEMAINE'] = $Numero_Semaine; $Informations_Semaines_Annee[$Annee.$Numero_Semaine]['DATE_DEBUT'] = $Boucle; $Informations_Semaines_Annee[$Annee.$Numero_Semaine]['DATE_FIN'] = $Boucle; } else { $Informations_Semaines_Annee[$Annee.$Numero_Semaine]['DATE_FIN'] = $Boucle; } } $Timestamp_Debut = date2time($Boucle_format); $Timestamp_Fin = $Timestamp_Debut + (24 * 60 * 60); // Attention au changement d'heure (hiver / été) ! La fonction strftime bugge pour le 31/10: il faut ajouter 6 minutes pour que 31/10 + 1 jour = 01/11 !!! $Timestamp_Fin += 3600; $Boucle = strftime("%Y%m%d", $Timestamp_Fin); } return $Informations_Semaines_Annee; }
Cela renvoie un tableau associatif à 2 dimensions avec comme clé la date au format YYYYWW et un table associatif avec comme valeurs (ANNEE-SEMAINE-DATE_DEBUT-DATE_FIN) pour la valeur associée. Un petit foreach ou l’utilisation d’un count et c’est parti !
Calcul du nombre de mois entre de 2 dates PHP
function calculer_calendrier_en_mois($Date_Debut, $Date_Fin) { $Informations_Mois_Annee = array(); $Mois_Debut = substr($Date_Debut,0,6); $Mois_Fin = substr($Date_Fin,0,6); while ($Mois_Debut <= $Mois_Fin) { $Informations_Mois_Annee[$Mois_Debut] = $Mois_Debut; $Mois_Debut ++; if (substr($Mois_Debut,4,2) == 13) { $Mois_Debut = substr($Mois_Debut,0,4) + 1; $Mois_Debut .= '01'; } } return $Informations_Mois_Annee; }
Cela renvoie un tableau associatif avec comme clé la date au format YYYYMM et la date au format YYYYMM pour la valeur associée. Pour les sorties de valeurs à vous de voir aussi. Un petit foreach ou l’utilisation d’un count et c’est parti !
Calcul du nombre d’années entre de 2 dates PHP
function calculer_calendrier_en_annee($Date_Debut, $Date_Fin) { $Informations_Annee = array(); $Annee_Debut = substr($Date_Debut,0,4); $Annee_Fin = substr($Date_Fin,0,4); while ($Annee_Debut <= $Annee_Fin) { $Informations_Annee[$Annee_Debut] = $Annee_Debut; $Annee_Debut ++; } return $Informations_Annee; }
Cela renvoie un tableau associatif avec comme clé la date au format YYYY et la date au format YYYY pour la valeur associée. Un petit foreach ou l’utilisation d’un count et c’est parti !