(PHP 5 >= 5.2.0, PHP 7)
DateTime::__construct -- date_create — Retourne un nouvel objet DateTime
time
Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.
Passez "now" ici pour obtenir le temps courant en
utilisant le paramètre $timezone
.
timezone
Un objet DateTimeZone representant
le fuseau horaire de $time
.
Si$timezone
est omis, le fuseau horaire
actuel sera utilisé.
Note:
Le paramètre
$timezone
et le fuseau horaire actuels sont ignorés lorsque paramètre$time
est un timestamp UNIX (e.g. @946684800) ou précise un fuseau (e.g. 2010-01-28T15:00:00+02:00).
Retourne une nouvelle instance DateTime.
Style procédural retourne FALSE
en cas d'erreur.
Émet un Exception en cas d'erreur.
Version | Description |
---|---|
5.3.0 |
Si le paramètre time contient un format
date/heure invalide,
alors une exception sera lancée. Précédemment, une erreur était
émise.
|
7.1 | A partir de mainteant, les microsecondes sont préremplie avec les valeurs actuelles et non plus avec '00000'. |
Exemple #1 Exemple avec DateTime::__construct()
Style orienté objet
<?php
try {
$date = new DateTime('2000-01-01');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}
echo $date->format('Y-m-d');
?>
Style procédural
<?php
$date = date_create('2000-01-01');
if (!$date) {
$e = date_get_last_errors();
foreach ($e['errors'] as $error) {
echo "$error\n";
}
exit(1);
}
echo date_format($date, 'Y-m-d');
?>
Les exemples ci-dessus vont afficher :
2000-01-01
Exemple #2 Autres exemples avec DateTime::__construct()
<?php
// date/time spécifiés dans le fuseau de votre machine
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
// date/time dans un fuseau précis.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// date/time courants dans le fuseau de votre machine
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";
// date/time courants dans un fuseau précis.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Utilisation d'un timestamp Unix. Notez que le résultat est dans le fuseau UTC.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Valeur non existante
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
2000-01-01 00:00:00-05:00 2000-01-01 00:00:00+12:00 2010-04-24 10:24:16-04:00 2010-04-25 02:24:16+12:00 2000-01-01 00:00:00+00:00 2000-03-01 00:00:00-05:00