Rechercher une fonction PHP

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7)

DateTime::createFromFormat -- date_create_from_formatAnalyse une heure au format texte selon le format spécifié.

  

Description

Style orienté objet

public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

Style procédural

DateTime date_create_from_format ( string $format , string $time [, DateTimeZone $timezone ] )

Retourne un nouvel objet DateTime representant la date et l'heure spécifiées par le texte time, qui a été formaté dans le format donné.

  

Liste de paramètres

format

Le format à utiliser. Voir les options de formatage ci-dessous. Dans le plupart des cas, les mêmes lettres que pour la fonction date() peuvent être utilisées.

Les caractères suivants sont reconnus pour le paramètre format
format character Description Exemple de valeurs analysées
Jour --- ---
d et j Jour du mois, sur 2 chiffres, avec ou sans le zéro initial 01 à 31 ou 1 à 31
D and l Une représentation textuelle du jour De Mon jusqu'à Sun ou de Sunday jusqu'à Saturday
S Préfixe anglais du jour du mois, sur 2 caractères. Il sera ignoré lors de l'analyse. st, nd, rd ou th.
z Le jour de l'année (en commençant à 0) 0 through 365
Mois --- ---
F et M Une représentation textuelle du mois, comme January ou Sept De January à December ou de Jan à Dec
m et n Une représentation numérique du mois, avec ou sans zéro initial De 01 à 12 ou de 1 à 12
Année --- ---
Y Une représentation complète de l'année, sur 4 chiffres Exemples : 1999 ou 2003
y Une représentation partielle de l'année, sur 2 chiffres (qui doit être dans l'intervalle 1970-2069, inclus) Exemples : 99 ou 03 (seront interprétés comme l'année 1999 et l'année 2003, respectivement)
Heure --- ---
a et A Ante meridiem et Post meridiem am ou pm
h et g L'heure au format 12-heures, avec ou sans zéro initial De 1 à 12 ou de 01 à 12
G et H L'heure au format 24-heures, avec ou sans zéro initial De 0 à 23 ou de 00 à 23
i Les minutes, avec un zéro initial De 00 à 59
s Les secondes, avec un zéro initial De 00 à 59
u Les microsecondes (jusqu'à 6 chiffres) Exemple : 45, 654321
Fuseau horaire --- ---
e, O, P et T L'identifiant du fuseau horaire, ou la différence en heures avec UTC, ou la différence avec UTC avec deux points (:) entre les heures et les minutes, ou l'abréviation du fuseau horaire Exemples : UTC, GMT, Atlantic/Azores ou +0200 ou +02:00 ou EST, MDT
Date/heure complète --- ---
U Le nombre de secondes depuis l'époque Unix (January 1 1970 00:00:00 GMT) Exemple : 1292177455
Espace et séparateurs --- ---
(espace) Un espace ou une tabulation Exemple :
# Un des symboles de séparation suivants : ;, :, /, ., ,, -, ( ou ) Exemple : /
;, :, /, ., ,, -, ( ou ) Le caractère spécifié. Exemple : -
? Un octet aléatoire Exemple : ^ (Be aware that for UTF-8 characracters you might need more than one ?. In this case, using * is probably what you want instead)
* Octets aléatoires jusqu'au prochain séparateur ou chiffre Exemple : * dans Y-*-d avec la chaîne 2009-aWord-08 trouvera la chaîne aWord
! Réinitialise tous les champs (année, mois, jour, heure, minute, seconde ainsi que les informations quant au fuseau horaire) à l'heure de l'époque Unix Sans le caractère !, tous les champs seront définis à la date et heure courante.
| Réinitialise tous les champs (année, mois, jour, heure, minute, seconde ainsi que les informations quant au fuseau horaire) à l'heure de l'époque Unix s'ils n'ont pas encore été analysés Y-m-d| définira l'année, le mois et le jour avec les informations trouvées dans la chaîne analysée, mais aussi l'heure, les minutes et les secondes à 0.
+ Si le spécifieur de format est présent, les données restantes de la chaîne ne causeront pas une erreur, mais une alerte Utilisez la méthode DateTime::getLastErrors() pour identifier la présence de données restantes.

Pour inclure un caractère litéral dans format, vous devez l'échaper avec un antislasch (\).

Les caractères non reconnus dans le format feront échouer l'analyse et un message d'erreur sera ajouté à la structure retournée. Vous pouvez utiliser la méthode DateTime::getLastErrors() pour récupérer les messages d'erreur.

Si format n'est pas composé du caractère ! alors les valeurs de temps générées qui sont absentes de format prendront comme valeur le temps système.

Si format contient le caractère !, alors les valeurs de temps générées qui sont absentes de format ainsi que les valeurs situées à gauche de ! prendront des valeurs mesurées depuis l'époque Unix.

Le début de l'époque Unix est le 01/01/1970 à 00:00:00 UTC.

time

Chaîne représentant l'heure.

timezone

Un objet DateTimeZone représentant le fuseau horaire désiré.

Si timezone est omis et time ne contient pas de fuseau, le fuseau courant sera utilisé.

Note:

Le paramètre timezone et le fuseau courant sont ignorés lorsque le paramètre time contient un timestamp (par ex 946684800) ou précise un fuseau (par ex 2010-01-28T15:00:00+02:00).

  

Valeurs de retour

Retourne un nouvel objet DateTime ou FALSE si une erreur survient.

  

Historique

Version Description
5.3.9 Le spécifieur + du paramètre format a été ajouté.

  

Exemples

Exemple #1 Exemple avec DateTime::createFromFormat()

Style orienté objet

<?php
$date 
DateTime::createFromFormat('j-M-Y''15-Feb-2009');
echo 
$date->format('Y-m-d');
?>

Style procédural

<?php
$date 
date_create_from_format('j-M-Y''15-Feb-2009');
echo 
date_format($date'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2009-02-15

Exemple #2 Autres exemples avec DateTime::createFromFormat()

<?php
echo 'Date courante: ' date('Y-m-d H:i:s') . "\n";

$format 'Y-m-d';
$date DateTime::createFromFormat($format'2009-02-15');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";

$format 'Y-m-d H:i:s';
$date DateTime::createFromFormat($format'2009-02-15 15:16:17');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";

$format 'Y-m-!d H:i:s';
$date DateTime::createFromFormat($format'2009-02-15 15:16:17');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";

$format '!d';
$date DateTime::createFromFormat($format'15');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Date courante: 2010-04-23 10:29:35
Format: Y-m-d; 2009-02-15 10:29:35
Format: Y-m-d H:i:s; 2009-02-15 15:16:17
Format: Y-m-!d H:i:s; 1970-01-15 15:16:17
Format: !d; 1970-01-15 00:00:00

Exemple #3 Texte de Format avec des caractères litéraux

<?php
echo DateTime::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

23:15:03

  

Voir aussi

Rechercher une fonction PHP

Version en cache

22/12/2024 13:21:03 Cette version de la page est en cache (à la date du 22/12/2024 13:21:03) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-datetime.createfromformat.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut