Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment obtenir le jour de la semaine d'une date ?
auteur : Cyberzoide
Étape 1 : extraction du $jour, $moi et $annee de la $date (avec explode())
Étape 2 : création du timestamp unix (= nombre de secondes écoulées depuis le 1er janvier 1970) avec mktime()
Étape 3 : obtenir le jour de la semaine correspondant à ce timestamp avec date() utilisé avec le format "w" et le $timestamp qui retourne le chiffre du jour de la semaine : 0 pour dimanche, 1 pour lundi...

Exemple:
// date du jour
echo $date = date("d/m/Y");
// tableau des jours de la semaine
$joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
// extraction des jour, mois, an de la date
list($jour, $mois, $annee) = explode('/', $date);
// calcul du timestamp
$timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
// affichage du jour de la semaine
echo $joursem[date("w",$timestamp)];

Comment afficher la date du jour en français ?
auteur : Maxoo
Nous avons deux solutions :
  • En utilisant strftime :
Nous avons besoin pour cela de deux fonctions : strftime() pour formater la date et setlocale() pour préciser les informations de localisation.
echo "date du jour en français : " ;
// selon le serveur c'est fr ou fr_FR ou fr_FR.ISO8859-1 qui est correct.
setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR.ISO8859-1');
echo strftime("%A %d %B %Y."); //Affichera par exemple "date du jour en français : samedi 24 juin 2006."
LC_TIME est une constante prédéfinie utilisée pour formater les dates et heures avec la fonction strftime()
  • En utilisant date :
Nous avons besoin de deux fonctions : date() pour obtenir la date du jour et explode() pour extraire les différentes composantes de cette date.
//Voici les deux tableaux des jours et des mois traduits en français
$nom_jour_fr = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
$mois_fr = Array("", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", 
		"septembre", "octobre", "novembre", "décembre");
// on extrait la date du jour
list($nom_jour, $jour, $mois, $annee) = explode('/', date("w/d/n/Y"));
echo "date du jour en français : " ;
echo $nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee; 
//Affichera par exemple : "date du jour en français : samedi 24 juin 2006."
Attention : pour les jours, il faut bien commencer par Dimanche, et pour les mois il faut laisser la première case de vide car janvier = 1

lien : faq Comment récupérer le jour, le mois et l'année d'une date ?

Comment afficher une date MySQL en français ?
auteur : Cyberzoide
Etudions l'exemple complet de la conversion d'une date au format anglophone MySQL en format francophone.

Une date MySQL se présente ainsi : "YYYY-DD-MM hh:mm:ss"

YYYY : l'année numérique avec 4 chiffres, DD : le jour numérique, MM : le mois numérique, hh : heures, mm : minutes, ss : secondes

Tous les nombres sur 2 chiffres prennent un zéro devant si nécessaire.

Par exemple : "2002-20-04 15:08:20" correspond au 20 avril 2002 à 15h08 et 20 secondes.

Ce format correspond au type DATETIME. Soit lastmodified un attribut d'une table MySQL.

La requête suivante permet d'extraire la date de dernière modification d'un enregistrement.
SELECT lastmodified
FROM citations
WHERE id=$id;
Étape 1 : extraction de la date d'une base de données MySQL
$requet = "SELECT lastmodified FROM citations WHERE id=$id";
if($result = mysql_query($requet)) 
{
    if($ligne = mysql_fetch_row($result)) 
	{
        $lastmodifed = $ligne[0];
    } 
	else 
        die("Erreur base de données");
} 
else 
    die("Erreur base de données");
Étape 2 : séparation de la date et de l'heure
Le seul espace de la chaîne de caractères qui constitue la variable $lastmodified est un séparateur entre la date et l'heure. On va donc la scinder en ses deux morceaux grâce à la fonction explode() qui renvoie les sous chaînes dans un tableau dont est extrait, via list(), les deux variables $date et $time.
list($date, $time) = explode(" ", $lastmodified);
Étape 3 : extraction des jour, mois, année
On procède selon le même schéma que précédemment sauf qu'ici c'est le tiret qui est séparateur dans la date.
list($year, $month, $day) = explode("-", $date);
Étape 4 : extraction facultative des heures, minutes, secondes
Ici, le séparateur sont les deux points.
list($hour, $min, $sec) = explode(":", $time);
Étape 5 : affichage au format francophone
echo $lastmodified = "$day/$month/$year $time";
Affiche "20/04/2002 15:08:20".

On a donc transcrit en français notre date anglaise.

On peut aller encore plus loin en affichant les mois en toutes lettres et en français.

Étape 6 : affichage en toutes lettres du mois
On crée d'abord le tableau des mois de l'année.
$months = array("janvier", "février", "mars", "avril", "mai", "juin",
    "juillet", "août", "septembre", "octobre", "novembre", "décembre");
Ensuite, on affiche l'élément du tableau des mois de l'année dont l'indice est égal au numéro du mois. Comme l'indice du tableau commence à zéro, il faut soustraire 1 à $month, cela aura aussi pour effet de caster cette chaîne en entier (et de supprimer le zéro éventuel en première position).
echo $lastmodified = "le $day ".$months[$month-1]." $year à ${hour}h${min}m${sec}s";
Affiche "le 20 avril 2002 à 15h08m20s".

Et voilà !

lien : faq Comment convertir une date MySQL au format francophone ?

Comment convertir une date MySQL au format francophone ?
auteurs : Kerod, Forum PHP
Une date au format MySQL est sous la forme suivante "YYYY-DD-MM hh:mm:ss". Par conséquent, pour la convertir au format francophone "jour/mois/annee hh:mm:ss", il nous faut utiliser la fonction strtotime() qui essaye de lire une date au format anglophone, et de la transformer en timestamp Unix.

Cette fonction renverra donc, en cas de succès, un nombre entier qui correspondra au timestamp et FALSE sinon.
$dateMySQL = "2006-28-12 22:45:34";
$echo date("d/m/Y H:i:s", strtotime($dateMySQL)); //Affiche 28/12/2006 22:45:34
lien : faq Comment afficher une date MySQL en français ?

Comment convertir une date au format francophone vers le format anglais ?
auteur : Sub0
function datefr2en($mydate){
   @list($jour,$mois,$annee)=explode('/',$mydate);
   return @date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee));
}
L'intérêt d'utiliser la fonction mktime est qu'elle va transformer automatiquement les dates invalides en dates valides.


Qu'est ce qu'un timestamp ?
auteur : Forum PHP
Le "timestamp" ou "timestamp Unix" est le nombre de secondes qui se sont écoulées entre un moment donnée et le 1er janvier 1970 à 0h0min0s GMT.
Cela veut dire que le timestamp ne change pas en fonction du fuseau horaire. C'est la fonction "date", par exemple, qui utilisera le fuseau horaire en cours pour afficher correctement l'heure.

Vous trouverez un grand nombre d'explications sur l'utilisation des dates à l'adresse suivante :
http://php.net/ref.datetime


Comment vérifier la validité d'une date ?
auteur : Kerod
Pour vérifier qu'une date est valide on utilise la fonction checkdate() qui retourne TRUE si la date est valide, FALSE sinon

Exemple :
$date = "17/06/2006";
list($jour, $mois, $annee) = explode('/', $date);
if(checkdate($mois,$jour,$annee))
{
  echo "date valide";
}
else
{
  echo "date non valide";
}

Comment récupérer le jour, le mois et l'année d'une date ?
auteur : Kerod
Pour récupérer le jour, le mois et l'année d'une sous le format jour/mois/année on utilise la fonction explode() qui retourne un tableau de chaînes

Exemple :
$date = "17/06/2006";
list($jour, $mois, $annee) = explode('/', $date);
echo $jour; //Pour afficher juste le jour
Sous le format "année-mois-jour hh:min:sec" on utilise la fonction sscanf() qui lit des données dans la chaîne str, et l'interprète en fonction du format

Exemple :
$date = "2006-06-17 10:00:00";
list($annee, $mois, $jour) = sscanf($date, "%d-%d-%d"); //%d pour récupérer des entiers mais on peut utiliser 
//%s pour récupérer comme des chaînes de caractères
echo $jour; //Pour afficher juste le jour
On peut, bien sur, utiliser dans chacun des cas les différentes fonctions


Comment calculer le temps restants/écoulés entre deux heures ?
auteur : Kerod
Pour calculer une durée à partir d'heures au format hh:mm:ss, il faut utiliser la fonction :
  • explode() qui permettra d'extraire les heures, minutes et secondes.
  • mktime() qui retournera le timestamp correspondant.
Exemple :
  • Définition et préparation des données pour traitement
Préparation des données
//Définition des heures
$heure1 = "04:20:00";
$heure2 = "03:30:00";
//Extractions des différents paramètres
list($h1, $m1, $sec1) = explode(':', $heure1);
list($h2, $m2, $sec2) = explode(':', $heure2);
//Calcul des timestamps
$timestamp1 = mktime ($h1, $m1, $sec1, 7, 9, 2006);
$timestamp2 = mktime ($h2, $m2, $sec2, 7, 9, 2006);
  • Calcul du temps écoulés/passés uniquement en minutes
Calcul du temps en minutes
$diff_heure = floor(abs($timestamp2 - $timestamp1)/60);
echo $diff_heure."min"; // Affiche 50min
  • Calcul du temps écoulés/passés en heures et minutes
Calcul du temps en h:min
$timestamp = abs($timestamp2 - $timestamp1);
$diff_heure = floor($timestamp / 3600); //Calcul des heures écoulées/restantes
$timestamp = $timestamp - ($diff_heure * 3600);
$diff_min = $timestamp / 60; //Calcul des minutes écoulées/restantes
echo $diff_heure . 'h' . $diff_min . 'min'; // Affiche 0h50min

Comment obtenir le nombre de jours écoulés entre deux dates ?
auteur : Kerod
Pour faire la différence entre deux dates, il faut utiliser les fonctions suivantes :
  • explode() qui permettra de récuperer le jour, le mois et l'année.
  • mktime() qui nous donnera le timestamp pour effectuer les calculs.
Pour obtenir le nombre de jours ou le nombre de semaines entre deux dates, il faut donc procéder comme ceci :
//Définition des date au format jour-mois-année
$date1 = "12-07-2003"; 
$date2 = "15-06-2003";
 
//Extraction des données
list($jour1, $mois1, $annee1) = explode('-', $date1); 
list($jour2, $mois2, $annee2) = explode('-', $date2);

//Calcul des timestamp
$timestamp1 = mktime(0,0,0,$mois1,$jour1,$annee1); 
$timestamp2 = mktime(0,0,0,$mois2,$jour2,$annee2); 
echo abs($timestamp2 - $timestamp1)/86400; //Affichage du nombre de jour : 27
echo abs($timestamp2 - $timestamp1)/(86400*7); //Affichage du nombre de semaine : 3.85
On utilise abs afin d'obtenir toujours une valeur positive, donc les dates peuvent être mises dans n'importe quel ordre.

lien : faq Qu'est ce qu'un timestamp ?
lien : faq Comment récupérer le jour, le mois et l'année d'une date ?

Comment récupérer le dernier jour d'un mois ?
auteur : Kerod
Pour obtenir le nombre de jours ou connaître la date de dernier jour dans un mois, il faut utiliser les fonctions date() et mktime().

Première méthode
Elle consiste à récupérer le nombre de jours dans le mois
$mois = 8; // Pour août
echo date("t",mktime(0,0,0,$mois,1,2006)); // Affiche 31
Deuxième méthode
$mois = 8; // Pour Août
echo date("t",mktime(0,0,0,$mois + 1,0,2006)); // Affiche 31
Remarque : Le dernier jour d'un mois peut être décrit comme le jour "0" du mois suivant


Comment obtenir la date d'un jour à l'autre ?
auteur : Kerod
Pour avoir la date d'un jour dans une semaine, nous avons plusieurs solutions. Voici quelques exemples toujours avec les fonctions dates.

Première méthode
Il faut tout d'abord savoir qu'une semaine en temps UNIX équivaut à 604800. D'où le code :
$day = 19/09/2006;
list($jour, $mois, $annee) = explode('/', $day);  // Séparation des éléments de la date
$timestamp = mktime(0, 0, 0, $mois, $jour, $annee); // Récupération du timestamp actuel
$timestamp += 604800; // Récupération du timestamp une semaine après
echo date('d/m/Y',$timestamp); // Affiche 27/09/2006
Deuxième méthode
$day = 19/09/2006;
list($jour, $mois, $annee) = explode('/', $day);  // Séparation des éléments de la date
$timestamp = mktime(0, 0, 0, $mois, $jour + 7, $annee); // Récupération du timestamp une semaine après
echo date('d/m/Y',$timestamp); // Affiche 27/09/2006
Remarque : Cette méthode fonctionne quel que soit le jour ou même le mois. En effet, mktime() va automatiquement corriger les valeurs invalides.


Comment faire pour que SQLServer retourne une date au format YYYY-MM-DD hh:mm:ss ?
auteur : berceker united
Par défaut en PHP, si vous utilisez une base de données SQL Server et que vous souhaitez retourner une date, celle-ci est formatée par rapport à la langue du serveur, c'est-à-dire qu'il vous retourne les premières lettres du mois en français. Pour y remédier, il faut éditer le fichier php.ini et changer la valeur mssql.datetimeconvert et la placer à Off.


precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2003  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com