| 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:
echo $ date = date(" d / m / Y " );
$ joursem = array (' dim ' , ' lun ' , ' mar ' , ' mer ' , ' jeu ' , ' ven ' , ' sam ' );
list ($ jour , $ mois , $ annee ) = explode(' / ' , $ date );
$ timestamp = mktime (0, 0, 0, $ mois , $ jour , $ annee );
echo $ joursem [ date(" w " , $ timestamp )] ;
|
|
| auteur : Maxoo | Nous avons deux solutions :
Nous avons besoin pour cela de deux fonctions : strftime() pour formater la date et setlocale() pour préciser les informations de localisation.
LC_TIME est une constante prédéfinie utilisée pour formater les dates et heures avec la fonction strftime()
Nous avons besoin de deux fonctions : date() pour obtenir la date du jour et explode() pour extraire les différentes composantes de cette date.
$ 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 " );
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 ;
|
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 : Comment récupérer le jour, le mois et l'année d'une date ?
|
| 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 : Comment convertir une date MySQL au format francophone ?
|
| auteurs : Kerod, Forum PHP, Julp |
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.
Il est aussi possible de le faire en SML : |
SELECT * , DATE_FORMAT(mon_champ_date, ' %d/%m/%Y ' ) AS date_fr FROM ma_table;
SELECT * , DATE_FORMAT(mon_champ_datetime, ' %d/%m/%Y %H:%i:%s ' ) AS datetime_fr FROM ma_table
|
|
lien : Comment afficher une date MySQL en français ?
|
| auteurs : Sub0, Julp |
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. Il est aussi possible de le faire en SQL : | $ date = ' 23/12/2006 ' ;
$ sql = mysql_query(" INSERT INTO ma_table SET mon_champ_date = STR_TO_DATE ( ' $ date ' , ' % d / % m / % Y ' ) , . . . " );
|
|
| 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/datetime
|
| auteurs : Kerod, Julp |
Pour vérifier qu'une date est valide on utilise la fonction checkdate() qui retourne TRUE si la date est valide, FALSE sinon
Exemple 1 : | $ date = " 17 / 06 / 2006 " ;
list ($ jour , $ mois , $ annee ) = explode(' / ' , $ date );
if (checkdate($ mois , $ jour , $ annee ))
{
echo " date valide " ;
}
else
{
echo " date non valide " ;
}
|
Exemple 2 : | if (preg_match(' ~^(\d{2})([/-])(\d{2})\2(\d{4})$~D ' , $ date , $ m ) & & checkdate($ m [ 3] , $ m [ 1] , $ m [ 4] ))
{
echo ' date valide ' ;
}
else
{
echo ' date non valide ' ;
}
|
|
lien : Initiation aux expressions régulières en PHP
|
Consultez les autres F.A.Q.
Les sources présentés sur cette page sont libres 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. Tous 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érêts.
Cette page est déposée à la SACD.
|