Menu Fixe Responsive


Connectez-vous gratuitement !

Les dates en html, php et Mysql (date de naissance formulaire, afficher le jour en français, intervalle de temps : heure, minutes, secondes... entre deux dates, etc.)

Les dates en html, php et Mysql (date de naissance formulaire, afficher le jour en français, intervalle de temps : heure, minutes, secondes... entre deux dates, etc.)





Afficher la date du jour
Calculer la différence entre deux dates, entre aujourd'hui et une date inférieure, en année, mois, jours, heures, minutes et secondes : 
 
$dateineferieure=$show1->heureconnexion;                    
                     $datelimite=$show1->heurederniereconnexion;
                     //date d'aujourd'hui

                     $limite = date_create($datelimite);
                     $daycreate = date_create($dateineferieure);  
                     $diff=date_diff($daycreate, $limite);

                     $limite=$diff->format("%h : %i : %s ");

Dans cet exemple on obtiendra la différence entre deux dates en heures : minutes : secondes
Pour afficher en annee, mois et jours : %Y : %m  : %d
Rien de plus simple, n'est-ce pas !?
 
Si vous voulez afficher la différence entre la date instantannée (actuelle) et celle d'une date dans votre base de données :

$datelimite=$show1->heurederniereconnexion;
                     //date d'aujourd'hui
                     $day= date('Y-m-d h:i:s');


                     $limite = date_create($datelimite);
                     $daycreate = date_create($dateineferieure);  
                     $diff=date_diff($daycreate, $limite);

                     $limite=$diff->format("%h : %i : %s ");

 

  
Afficher la date du jour


$aujourdhui= new DateTime();
echo $aujourdhui->format('d-m-Y H:i:s');

On obtient par exemple : 07-10-2015 15:38:24

A ce stade vous êtes en droit de vous dire que c'est nul d'afficher aux visiteurs la date comme cela. En effet, samedi 07 novembre 2015 serait plus charmant non ? Pas de panique, un peu plus bas dans ce tuto, je vais vous expliquer comment faire.

 

 

Afficher la date d'une table en SQL par la transformation PHP

on extrait de la BDD la date qui se trouve dans une table et champ sélectionnés par le biais de votre requête SQL traditionnelle, ici j'utilise dans ma requête FETCH_OBJ (si vous n'êtes à l'aise avec fetch_obj, regarder au 3ème paragraphes, un exemple complet).
 
$affiche_date=$select->fetch(PDO::FETCH_OBJ);
$intial=$affiche_date->date;
 

si on fait un echo de $initial, la date sera affichée, mais au format anglais : aaaa-mm-jj

ces deux lignes permettent de changer le format de date.

$date= new DateTime( "$initial");

pour l'année, bien mettre un Y en majuscule, les tirets ne sont pas obligatoires...

$requete=$date->format( 'd - m - Y ');

On obtient : jj - mm - aaaa

Biensûr, pour obtenir ce résultat, il faut faire :

echo $requete;
 
 
Afficher la date d'une table en SQL par la transformation directement en SQL
 
On peut aussi obtenir ce résultat direment en faisant nôtre requête :

SELECT DATE_FORMAT('2008-05-15 22:23:00', '%W %D %M %Y');

Il faut directement dans votre SELECT effectuer cette transformation. Pour l'instant le W, D, M etc. ne vous parlent pas ? pas de panique, je vais vous expliquer ce langage après. Vous pouvez observer que nous avons mis : '2008-05-15 22:23:00' mais nous aurions pu mettre directement le nom de la colonne où se situe la date à afficher de nôtre table !

 

 

Explication du langage des dates à connaitre !

 

Ci-dessous, je vous ai énuméré la définition des lettres pour l'utilisation des années, mois, jours, etc. Il vous ai indispensable de les connaitre un minimum. J'ai pris le temps de vous les classer, ce qui devrait vous faciliter la tache.

Ces formats sont à utiliser pour la transformation des dates en php. En SQL, idem mais utilisez des pourcentages devant, comme dans l'exemple.

 

Gestion des années :
   Y => retourne l'année sur 4 chiffres (2012)
   y => retourne l'année mais que les 2 derniers chiffres (2012 = 12 ou 1987 = 87)

Gestion des mois :  
    d => jours du mois avec deux chiffres ( 1 à 31)
    j => jours du mois avec deux chiffres (01 à 31) => avec les zéros si < 10 
    t => retourne le jour du mois courant
    m => retourne le numéro de mois (01 à 12) => avec les zéros si < 10
    n => retourne le numéro de mois (1 à 12)

Gestion des jours :
    z => Le jours de l'année en commençant par (0 à 365)
    w => retourne le numéro de jour de la semaine (0 pour dimanche)
    W =>(W majuscule) retourne le numéro du jour de la semaine selon l'ISO 8601 (0 pour lundi)
    N =>(N majuscule) depuis PHP 5 retourne le numéro de la semaine ( 1 pour lundi, 7 pour dimanche)
   

Gestion des heures :
    h => retourne l'heure sur 12heures (1 à 12)
    g => retourne l'heure sur 12heures (01 à 12) => avec les zéros si < 10
    H => heure au format 24heures (0 à 23)
    G => heure au format 24 heures (00 à 23) => avec les zéros si < 10

Gestion des minutes :
    i => retourne les minutes (00 à 59) =>avec les zéros si < 10

Gestion des secondes :
    s => retourne les secondes (00 à 59) => avec les zéros si < 10
    u => les micros secondes jusqu'à 6 chiffres après les secondes (secondes 34.456124 microsecondes)


Les inclassables :
    I(i majuscule) => retourne 1 si l'heure d'été est activée ou 0 le cas contraire
    L(l majuscule) => retourne 1 pour les années bissextiles, sinon 0
    Z => (Z majuscule) retourne le décalage horaire en secondes négatif à Ouest et positif à l'Est de la zone UTC
    e => retourne l'identifiant du reseau horaire ( UTC n'est pas une time zone mais un time standard "le + utilisé" , GMT "certains pays européens et d'afrique" c'est une time zone, Atlantic/Azores ...)
    O => (O majuscule) exprime la différence d'heures avec le GMT (+0200)
    P => (P majuscule) idem que ci-dessus mais on rajoute un séparateur, : (+02:00)
    T => (T majuscule) abréviation du fuseau horaire (EST, MDT, ..)

    c => date complète au format iso8601 (aaaa-jj-mmTHH:mm:ss+00:00) T exprime le passe à l'affichage temps, +00:00 décalage fuseau horaire = (2014-27-10T17:25:30+00:00)

 

Maintenant que vous savez comment afficher une date, l'afficher en français et que vous connaissez désormais le jargon des dates, passons aux choses sérieuses...

 

Afficher la date en français : nom du jour de la semaine et nom du mois en français

samedi 07 novembre 2015       au lieu de           07-10-2015 15:38:24

 

$date=$bdd->prepare("SELECT * FROM table ");
 $date->execute();
while($affiche = $date->fetch(PDO::FETCH_OBJ) );
{
    //on récupère la date
    $d=$affiche->date; // on suppose que la colonne de la table où se situe la date est nommée date
    $date= new DateTime ("$d"); // bien mettre des guillemets ici

    $dates=$date->format('d');
   $num=$date->format('n');
    $annee=$date->format('Y');
    $format=$date->format('w');
   
    $jour= array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
    $mois= array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');

    $date_en_francais=$jour[$format]." ".$dates." ".$mois[$num]." ".$annee;
    // $jour[$format] => renvoie le jour de la semaine en fonction du numéro de la semaine 'w' se situant dans le tableau. Le tableau commence par 0 car le premier jour de la semaine 'w' commence par 0
    // $mois[$num] => idem que ci-dessus à un détail près, 'n' renvoie le numéro de mois.

}

 

Autre méthode avec une fonction 

 

public function dateFr()
{

$jour= array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$mois= array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');

$day=$jour[date('w')].' '.date('j').' '.$mois[date('n')-1].' '.date('Y');
return $day;
}

 

Vous l'aurez compris qu'on peut utiliser cette fonction dans nôtre exemple, je vous montre comment faire :

 

public function dateFr()
{
   $date=$bdd->prepare("SELECT * FROM table ");
   $date->execute();
   while($affiche = $date->fetch(PDO::FETCH_OBJ) );
  {
     $d=$affiche->date; 
     $date= new DateTime ("$d"); 

     $dates=$date->format('d');
     $num=$date->format('n');
     $annee=$date->format('Y');
     $format=$date->format('w');
   
     $jour= array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
     $mois= array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');

     $date_en_francais=$jour[$format]." ".$dates." ".$mois[$num]." ".$annee;
     return $date_en_francais;

   }
}

Pour appeller la fonction faites :

dateFr()

 

 

Calculer l'intervalle de temps entre deux dates (1ère méthode)

Cette astuce vous permettra de faire ressortir l'écart entre deux dates, soit en + soit en - .

Je reprends l'exemple vu plus haut auquel on va rajouter des choses :
$intial=$show->date;
$date= new DateTime( $initial);
$requete=$date->format( 'd - m - Y ');
 
Voici les lignes que nous devons rajouter :
 
 //ensuite si on veut calculer la différence de jours entre la date d'aujourd'hui et la date ci-dessus
// la ligne ci-dessous peut être utilisée pour n'afficher que la date d'aujourd'hui !
$aujourdhui = date( ' d - m - Y ' );
// pas d'apostrophes $requete et $aujourdhui, on utilise la fonction date_create
$date_ci_dessus = date_create ( $requete); // vous remarquerez que j'ai mis au même format que $aujourd'hui.
// Le += 1 n'est pas obligatoire, je l'ai rajouté pour tenir compte d'un décalage
$aujourdhui2 = date_create ($aujourdhui +=1 );
//On utilise la fonction date_diff pour compter le nombre de jours séparant les deux dates
$difference = date_diff ( $aujourdhui2, $date_ci_dessus );
// Permet de n'afficher que le nombre de jours
$finalediffrence = $difference->format ( " %R%a jours " );
 
Maintenant faites un echo de $finalediffrence;
Si le résultat est en +, cela veut dire que la date d'aujourd'hui est supérieure à +1 jours par rapport à la date indiquée. Si c'est en - , mais même raisonnement mais à l'inverse.
 
Maintenant pour appliquer une condition au résultat obtenu :
 
Notre objectif est que l'écart obtenu doit être inférieur à aujourd'hui :
$finaledifference doit être < à $aujourdui et non avec $aujourdhui2
Nous obtiendrons : $finaledifference <  - 0
 

Calculer l'intervalle de temps entre deux dates (2ème méthode)

Dans cet exemple nous allons calculer le nombre de minutes qui séparent ces deux dates.

$heureconnexion1=$show2->heureconnexion;  

$date= new DateTime( $heureconnexion1);
$formataujourdhui3=$date->format( 'i ');

 

 $aujourdhui= new DateTime();
 $formataujourdhui2= $aujourdhui->format('i');

 $intervalle = $formataujourdhui3 - $formataujourdhui2 ;

 

En plus du nombre de minutes ci-dessus, on peut calculer le nombre d'heures, secondes, etc. Ici nous allons appliquer cela pour les heures en plus.

$heureconnexion1=$show2->heureconnexion;  

$date= new DateTime( $heureconnexion1);
$formataujourdhui3=$date->format( 'H ');

 

 $aujourdhui= new DateTime();
 $formataujourdhui2= $aujourdhui->format('H');

 $intervalle = $formataujourdhui3 - $formataujourdhui2 ;

 

Appliquer un intervalle de temps (1ère méthode avec STRTOTIME)

$date = date( ' Y-m-d ', strtotime(" +1 days "));  // rajoute 1 jour, pour 2 jours mettre +2 days
ou
$date = date( ' Y-m-d ', strtotime(" +1 days "))."\n"; // idem pour les lignes ci-dessous
 
$date = date( ' Y-m-d ', strtotime(" +1 weeks"));  // rajoute 1 semaine, pour 2 semaines mettre +2 weeks
 
$date = date( ' Y-m-d ', strtotime(" +1 month"));  // rajoute 1 mois, pour 2 mois mettre +2 month
 
$date = date( ' Y-m-d ', strtotime(" +1 years"));  // rajoute 1 année , pour 2 années mettre +2 years
 
$date = date( 'Y-M-d h:i:s  ', strtotime(" +10 minutes ")); // rajoute 10 minutes
 
$date = date( 'Y-M-d h:i:s  ', strtotime(" +1 hours")); // rajoute 1 heure
 
$date = date( 'Y-M-d h:i:s  ', strtotime(" +50 seconde")); // rajoute 50 secondes
 

Appliquer un intervalle de temps (2ème méthode avec DateInterval)

Bien mettre les lettres en majuscules
Y=>Année ou plusieurs années
M=>Nombre de mois
D=>Nombre de jours (incompatible avec W "nombre de semaines" )
H=>Nombre d'heures
M=>Nombre de minutes
S=>Nombre de secondes
W=>Nombre de semaines ( incompatible avec D "Nombre de jours" car les semaines seront converties en jours)
 
 
date= new DateTime( '2015-09-18');
$date->add( new DateInterval('P10D');
echo $date->format(' Y-m-d ')."\n";
//retourne le 2015-09-28
 
 
date= new DateTime( '2015-09-18');
$date->add( new DateInterval('PT07H20S');
echo $date->format(' Y-m-d H:i:s ')."\n";
//retourne le 2015-09-18 07:00:20
 
 
date= new DateTime( '2015-09-18');
$date->add( new DateInterval('P1Y2W6MT2H35M54S');
echo $date->format(' Y-m-d H:i:s ')."\n";
//Ici j'ai rajouté à la date 1 an, 2semaines, 6 mois, 2heures, 35 minutes et 54 secondes
// toutes les combinaisons sont possibles, ici j'ai tout mis dans une formule mais du moment qu'on n'oublie pas le P et/ou le T pour séparer la date de l'heure, on peut tout faire !
// l'association des semaines "x W "et des jours "x D" n'est pas possible, puisque les semaines seront converties en jours
 
 
 
Insérer une date de naissance dans la base de données

Le tutoriel est en cours de traitement, merci de revenir un peu plus tard pour voir la suite !


  cliquez sur
  une étoile

  1    2    3    4    5  






Mettre un commentaire sans compte







se connecter pour poster un commentaire avec un compte

COMMENTAIRES

Votre login (inscrit):
bashizi
Votre pseudo (non inscrit):
Date de publication :
Mercredi 10 Novembre 2021

Votre commentaire :       
bonjour je fait un systeme de verification de date de fin d'un abonnement! comment procedez? la video ne s'affiche pas! merci bcp

Votre login (inscrit):
Roger
Votre pseudo (non inscrit):
Date de publication :
Lundi 06 Mai 2019

Votre commentaire :       
Intéressante

Votre login (inscrit):
av
Votre pseudo (non inscrit):
Date de publication :
Vendredi 04 Août 2017

Votre commentaire :       
où est le tuto

Votre login (inscrit):
Votre pseudo (non inscrit):
Dav freux
Date de publication :
Samedi 02 Janvier 2016

Votre commentaire :       
Super tuto ! Félicitations