Comment puis-je obtenir l'horodatage par exemple 22-09-2008
?
Réponses
Trop de publicités? PHP strtotime()
donne
$timestamp = strtotime('22-09-2008');
Ce qui fonctionne bien avec la date et les formats pris en charge Temps Docs .
Il y a aussi strptime()
qui attend exactement un format:
$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
Avec DateTime
API:
$dateTime = new DateTime('2008-09-22');
echo $dateTime->format('U');
// or
$date = new DateTime('2008-09-22');
echo $date->getTimestamp();
De même avec la procédure de l'API:
$date = date_create('2008-09-22');
echo date_format($date, 'U');
// or
$date = date_create('2008-09-22');
echo date_timestamp_get($date);
Si le ci-dessus échoue parce que vous utilisez un format non pris en charge, vous pouvez utiliser
$date = DateTime::createFromFormat('!d-m-Y', '22-09-2008');
echo $dateTime->format('U');
// or
$date = date_parse_from_format('!d-m-Y', '22-09-2008');
echo date_format($date, 'U');
Notez que si vous ne définissez pas l' !
, le temps de la partie sera défini à l'heure actuelle, ce qui est différent de la première des quatre qui va l'utiliser à minuit, lorsque vous omettez le temps.
Encore une autre alternative est d'utiliser l' IntlDateFormatter
API:
$formatter = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'GMT',
IntlDateFormatter::GREGORIAN,
'dd-MM-yyyy'
);
echo $formatter->parse('22-09-2008');
Sauf si vous travaillez avec des chaînes date, le choix le plus facile est probablement le type DateTime.
Soyez prudent avec des fonctions comme strtotime()
que d'essayer de "deviner" ce que tu veux dire (il n'a pas le deviner, bien sûr, les règles sont ici).
En effet, 22-09-2008
sera analysée comme 22 septembre 2008, c'est la seule chose raisonnable.
Comment vais - 08-09-2008
être analysé? Probablement 09 Août 2008.
Qu'en 2008-09-50
? Certaines versions de PHP analyser ce que le 20 octobre 2008.
Donc, si vous êtes sûr que votre entrée est à l' DD-MM-YYYY
format, il est préférable d'utiliser la solution proposée par @Armin Ronacher.