info:myphp:calculer_un_delai_entre_deux_dates

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
info:myphp:calculer_un_delai_entre_deux_dates [2015/09/24 22:35] – modification externe 127.0.0.1info:myphp:calculer_un_delai_entre_deux_dates [2026/03/05 09:45] (Version actuelle) radeff
Ligne 1: Ligne 1:
 +====== PHP dates, heure, time ======
 +
 +<note tip>pfoah les dates c'est compliqué, mais php peut aider!</note>
 +
 +===== calculer un délai entre deux dates =====
 <code php> <code php>
 <?php <?php
Ligne 64: Ligne 69:
 </code> </code>
  
 +===== date-il-y-a-15-jours =====
 +
 +<code>
 +<?
 +/* Source: http://www.phpcs.com/code.aspx?id=27585 */
 +# // Indiquer le nombre de jours, mois, ans et le signe plus si c'est en positif.
 +
 +$nb_ans='0';
 +$nb_mois='0';
 +$nb_jours = '-15'; // Par exemple
 +echo 'il y a quinze jours on étais le : ';
 +echo date('d/m/Y', mktime(0,0,0,date('m')+$nb_mois,date('d')+$nb_jours,date('Y')+$nb_ans));
 +#
 +#
 +# Et voici la fonction :
 +#
 +# //--------------------------------------------------------------------
 +# // string fonction MyGetDate([int],[int],[int],[TRUE])
 +# //--------------------------------------------------------------------
 +# // Cette fonction retourne une date "relative" à la date du jour, contrairement à mktime qui retourne une date "absolue".
 +# // L'appel sans argument retourne la date du jour au format 15/11/2004
 +# //
 +# // Les arguments (dans l'ordre) :
 +# // [-] année(s) -> année(s) à ajouter/enlever à la date du jour
 +# // [-] mois -> mois à ajouter/enlever à la date du jour
 +# // [-] jour(s) -> jour(s) à ajouter/enlever à la date du jour
 +# // [True] -> format MySql (2004/11/15)
 +# //---------------------------------------------------------------------
 +# // En cas d'erreur sur les arguments, MyGetDate retourne FALSE.
 +# // Sinon une chaine contenant la date demandée
 +# //---------------------------------------------------------------------
 +function MyGetDate( $nb_ans='0', $nb_mois='0', $nb_jours='0', $mysql=FALSE){
 +if( is_int($nb_ans) && is_int($nb_mois) && is_int($nb_jours)){
 +$mysql ? $format = "Y-m-d" : $format = "d/m/Y";
 +return date($format, mktime(0,0,0,date('m')+$nb_mois,date('d')+$nb_jours,date('Y')+$nb_ans));
 +}
 +else{
 +return FALSE;
 +}
 +}
 +?>
 +</code>
 +
 +===== date-fr-easy =====
 +
 +<code>
 +<?
 +setlocale(LC_TIME, "fr");
 +echo "Mise à jour: ",strftime("%A %d %B %Y", getlastmod());
 +?>
 +</code>
 +===== date-fr complet =====
 +
 +<code>
 +<?
 +/*
 +Auteur : Thierry MOSCATO
 +Url : http://www.nexen.net
 +
 +Transform a php get date in a human readable format (english - french)
 +
 +Modified 2007 Fred radeff, radeff.red (date anglaise)
 +
 +if you want to pass another day than the current day, use get_date, eg:
 +
 +$now=date("U");
 +$daysago=$now-$UNIXTIME;
 +$daysago=intval($daysago/(24*3600));
 +
 +$lastvisit=getdate($UNIXTIME);
 +$lastvisit=list(f_datefr($lastvisit),);
 +
 +*/
 +
 +
 + function f_datefr(){
 + // Declaration du tableau des noms de jours en Francais
 +  //-------- ici
 +  $j_fr{0} = "Dimanche";
 +  $j_fr{1} = "Lundi";
 +  $j_fr{2} = "Mardi";
 +  $j_fr{3} = "Mercredi";
 +  $j_fr{4} = "Jeudi";
 +  $j_fr{5} = "Vendredi";
 +  $j_fr{6} = "Samedi";
 + 
 +  // Declaration du tableau des noms de jours en Francais
 +  $m_fr{1} = "Janvier";
 +  $m_fr{2} = "Fevrier";
 +  $m_fr{3} = "Mars";
 +  $m_fr{4} = "Avril";
 +  $m_fr{5} = "Mai";
 +  $m_fr{6} = "Juin";
 +  $m_fr{7} = "Juillet";
 +  $m_fr{8} = "Aout";
 +  $m_fr{9} = "Septembre";
 +  $m_fr{10} = "Octobre";
 +  $m_fr{11} = "Novembre";
 +  $m_fr{12} = "Decembre";
 + 
 + 
 + 
 +  // Declaration du tableau des noms de jours en Anglais
 +  $j_uk{1} = "Sunday";
 +  $j_uk{2} = "Monday";
 +  $j_uk{3} = "Tuesday";
 +  $j_uk{4} = "Wednesday";
 +  $j_uk{5} = "Thirsday";
 +  $j_uk{6} = "Friday";
 +  $j_uk{7} = "Saturday";
 + 
 + 
 +  // recuperation de la date du jour
 +  $aujourdhui = getdate();
 + 
 +  // Conversion du nom du jour en Francais
 +  $jour_l=$j_fr{$aujourdhui['wday']};
 + 
 + 
 +  //recuperation du jour en chiffre
 +  $jour = $aujourdhui['mday'];
 + 
 +  //recuperation du mois en chiffre
 +  $mois = $aujourdhui['mon'];
 + 
 +  // Conversion du nom du mois en Francais
 +  $mois_l = $m_fr{$mois} ;
 + 
 +  //recuperation de l'annee`
 +  $annee = $aujourdhui['year'];
 + 
 +  //stockage de la date complete dans la variable $dtfr
 +  $dtfr = "$jour_l $jour $mois_l $annee";
 + 
 +  //retour de cette variable
 +  return $dtfr;
 + 
 +}
 +
 +
 +function e_dateen(){
 + 
 +  // Declaration du tableau des noms de mois en anglais
 +  $m_en{1} = "January";
 +  $m_en{2} = "February";
 +  $m_en{3} = "March";
 +  $m_en{4} = "April";
 +  $m_en{5} = "May";
 +  $m_en{6} = "June";
 +  $m_en{7} = "July";
 +  $m_en{8} = "August";
 +  $m_en{9} = "September";
 +  $m_en{10} = "October";
 +  $m_en{11} = "November";
 +  $m_en{12} = "December";
 + 
 +  // Declaration du tableau des noms de jours en Anglais
 +  $j_en{1} = "Sunday";
 +  $j_en{2} = "Monday";
 +  $j_en{3} = "Tuesday";
 +  $j_en{4} = "Wednesday";
 +  $j_en{5} = "Thirsday";
 +  $j_en{6} = "Friday";
 +  $j_en{7} = "Saturday";
 + 
 +  // recuperation de la date du jour
 +  $aujourdhui = getdate();
 + 
 +  // Conversion du nom du jour en anglais
 +  $jour_l=$j_en{$aujourdhui['wday']};
 + 
 + 
 +  //recuperation du jour en chiffre
 +  $jour = $aujourdhui['mday'];
 + 
 +  //recuperation du mois en chiffre
 +  $mois = $aujourdhui['mon'];
 + 
 +  // Conversion du nom du mois en anglais
 +  $mois_l = $m_en{$mois} ;
 + 
 +  //recuperation de l'annee`
 +  $annee = $aujourdhui['year'];
 + 
 +  //stockage de la date complete dans la variable $dten
 +  $dten = "$jour_l $jour $mois_l $annee";
 + 
 +  //retour de cette variable
 +  return $dten;
 + 
 +}
 +
 +#now call the function and print the stuff
 +echo "Voici la date en français: " .f_datefr();
 +
 +echo "<hr>And now the date in english: " .e_dateen();
 +echo "<br><pre> should make a lot of exception for writing correctly, another day maybe:
 +
 +1st - first
 +2nd - second
 +3rd - third
 +And all the other numbers finishing with these figures.
 +23rd
 +31st, etc.
 +eg March 31st, 2005
 +</pre>";
 +?>
 +</code>
 +===== convertir une date mysql YYYY-MM-DD au format DD-MM-YYYY =====
 +
 +<code>
 +<!--    $Id: script-nexen.php,v 1.4 2002/11/28 19:45:12 didou Exp $    -->
 +<!-- script-nexen.php,v 1.5 2001/05/30 13:02:01 pierre Exp -->
 +<!--    $Id: db.inc,v 1.24 2003/09/15 12:34:06 dams Exp $    -->
 +<!-- db.inc,v 1.238 2001/05/30 15:43:51 pierre Exp -->
 +<!-- $Id: connectlib.php,v 1.1 2001/11/20 09:04:45 sam Exp $ -->
 +
 +<?php
 +/*
 + *
 + *
 + * Avertissement : Cette librairie de fonctions PHP est distribuee avec l'espoir 
 + * qu'elle sera utile, mais elle l'est SANS AUCUNE GARANTIE; sans meme la garantie de 
 + * COMMERCIALISATION ou d'UTILITE POUR UN BUT QUELCONQUE.
 + * Elle est librement redistribuable tant que la presente licence, ainsi que les credits des 
 + * auteurs respectifs de chaque fonctions sont laisses ensembles. 
 + * En aucun cas, Nexen.net ne pourra etre tenu responsable de quelques consequences que ce soit
 + * de l'utilisation ou la mesutilisation de ces fonctions PHP.
 +
 +*/
 +
 +/****
 + * Titre : Date format MySQL en date Francaise 
 + * Auteur : FreeCreator 
 + * Email : freecreator59@hotmail.com
 + * Url : 
 + * Description : Cette fonction permet de convertir une date au format MySQL en date Francaise.
 +
 +Elle retourne la date en francais
 +****/
 +function datefr($date_sql){
 +// Declaration du tableau des noms de jours en Francais 
 +  //-------- ici 
 +  
 +  
 +  $j_fr[Sunday]     = "Dimanche"; 
 +  $j_fr[Monday]     = "Lundi"; 
 +  $j_fr[Tuesday]     = "Mardi"; 
 +  $j_fr[Wednesday]    = "Mercredi"; 
 +  $j_fr[Thursday]    = "Jeudi"; 
 +  $j_fr[Friday]     = "Vendredi"; 
 +  $j_fr[Saturday]     = "Samedi"; 
 +  
 +  // Declaration du tableau des noms de jours en Francais 
 +  $m_fr[1]    = "Janvier"; 
 +  $m_fr[2]    = "Fevrier"; 
 +  $m_fr[3]    = "Mars"; 
 +  $m_fr[4]    = "Avril"; 
 +  $m_fr[5]    = "Mai"; 
 +  $m_fr[6]    = "Juin"; 
 +  $m_fr[7]    = "Juillet"; 
 +  $m_fr[8]    = "Aout"; 
 +  $m_fr[9]    = "Septembre"; 
 +  $m_fr[10] = "Octobre"; 
 +  $m_fr[11] = "Novembre"; 
 +  $m_fr[12] = "Decembre"; 
 +  
 +  $la_date    = explode(' ', $date_sql); // on decompose la date SQL
 +  $heure_sql= explode(':',$la_date[1]); // On prend la partie heure
 +  $date_sql    = explode('-',$la_date[0]); // On prend la partie date
 +  
 +  
 +  if (substr($date_sql[1],0,1) == '0' ) // On verifie si le 1er caractere est 0 dans le numero du mois
 +    {
 +    // si oui alors on supprime le 1er caractere
 +    $date_sql[1] = substr($date_sql[1],1,strlen($date_sql[1]) -1);
 +    }
 +
 +  $heure = $heure_sql[0]; // La variable de l'heure
 +  $minutes = $heure_sql[1]; // La variable des minutes
 +  $secondes = $heure_sql[2]; // la variable des secondes
 +  
 +  $annee = $date_sql[0]; // La variable des annees
 +  $num_mois = $date_sql[1]; // La variable du numero du mois
 +  $nom_mois = $m_fr[$num_mois]; // La variable du mois en francais
 +  $num_jour = $date_sql[2]; // Le numero du jour
 +  $nom_jour = $j_fr[date("l", mktime(0,0,0,$num_mois,$num_jour,$annee))]; // Le nom du jour en francais
 +
 +#  $date = "Le $nom_jour $num_jour $nom_mois $annee"; // On forme la date
 +  $date = "$nom_jour $num_jour $nom_mois $annee"; // On forme la date
 +  $heure = "$heure:$minutes:$secondes"; // On forme l'heure
 +  
 +  $date_fr= $date.' à '.$heure;
 +  
 +  //retour de cette variable 
 +  return $date_fr; 
 +}
 +
 +
 +?></code>
 +===== date2unix =====
 +
 +pour convertir tout format de temps string -> format unix / EPOC
 +
 +<code php>
 +<form method="GET">
 +<input type=text name=quand>
 +<input type=submit>
 +</form>
 +<?php
 +$quand=$_GET['quand'];
 +if($quand==""||!isset($quand)) {
 + echo strtotime("now"),"\n";;
 +}
 + echo strtotime($quand),"\n";;
 +
 +?>
 +</code>
 +
 +[[http://radeff.red/info/php/date2unix.php|example]]
 +
 +===== différence entre deux heures =====
 +<code>
 +<!--    $Id: script-nexen.php,v 1.4 2002/11/28 19:45:12 didou Exp $    -->
 +<!-- script-nexen.php,v 1.5 2001/05/30 13:02:01 pierre Exp -->
 +<!--    $Id: db.inc,v 1.24 2003/09/15 12:34:06 dams Exp $    -->
 +<!-- db.inc,v 1.238 2001/05/30 15:43:51 pierre Exp -->
 +<!-- $Id: connectlib.php,v 1.1 2001/11/20 09:04:45 sam Exp $ -->
 +
 +<?php
 +/*
 + *
 + *
 + * Avertissement : Cette librairie de fonctions PHP est distribuee avec l'espoir 
 + * qu'elle sera utile, mais elle l'est SANS AUCUNE GARANTIE; sans meme la garantie de 
 + * COMMERCIALISATION ou d'UTILITE POUR UN BUT QUELCONQUE.
 + * Elle est librement redistribuable tant que la presente licence, ainsi que les credits des 
 + * auteurs respectifs de chaque fonctions sont laisses ensembles. 
 + * En aucun cas, Nexen.net ne pourra etre tenu responsable de quelques consequences que ce soit
 + * de l'utilisation ou la mesutilisation de ces fonctions PHP.
 +
 +*/
 +
 +/****
 + * Titre : Différence entre 2 heures 
 + * Auteur : Min'
 + * Email : webmaster@pn-organisation.be
 + * Url : 
 + * Description : Cette fonction sert à effectuer la différence entre 2 heures formatées hh:mm:ss et renvoie une heure formatée pareillement
 +****/
 +function diff_time($t1,$t2){
 +//Heures au format (hh:mm:ss) la plus grande puis le plus petite
 +
 + $tab=explode(":",$t1);
 + $tab2=explode(":",$t2);
 +
 + $h=$tab[0];
 + $m=$tab[1];
 + $s=$tab[2];
 + $h2=$tab2[0];
 + $m2=$tab2[1];
 + $s2=$tab2[2];
 +
 + if ($h2>$h) {
 +     $h=$h+24;
 + }
 + if ($m2>$m) {
 + $m=$m+60;
 + $h2++;
 + }
 + if ($s2>$s) {
 +     $s=$s+60;
 + $m2++;
 + }
 +
 + $ht=$h-$h2;
 + $mt=$m-$m2;
 + $st=$s-$s2;
 + if (strlen($ht)==1) {
 +     $ht="0".$ht;
 + }
 + if (strlen($mt)==1) {
 +     $mt="0".$mt;
 + }
 + if (strlen($st)==1) {
 +     $st="0".$st;
 + }
 + return $ht.":".$mt.":".$st;
 +
 +}
 +
 +
 +?></code>
  • info/myphp/calculer_un_delai_entre_deux_dates.1443126904.txt.gz
  • Dernière modification : 2017/11/24 09:57
  • (modification externe)