DateTime::__construct
DateTime::getLastErrors
DateTime
PHP Manual

# DateTime::createFromFormat

# date_create_from_format

(PHP 5 >= 5.3.0)

DateTime::createFromFormat -- date_create_from_format — Retourne un nouvel objet DateTime formaté

### 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 formaté.

### 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 | Exemples : 99 ou 03
  Heure | --- | ---
  a et A | Ante meridiem et Post meridiem | am ou pm
  g et h | 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.

  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 Unix epoch.

  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.

### 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

### Voir aussi

- DateTime::__construct() - Retourne un nouvel objet DateTime
- DateTime::getLastErrors() - Retourne les dernières erreurs et alertes
- checkdate() - Valide une date grégorienne
- strptime() - Analyse une date générée par strftime

DateTime::__construct
DateTime::getLastErrors
DateTime
PHP Manual