39 votes

Convertir ISO 8601 en unixtimestamp

Comment puis-je convertir 2012-01-18T11:45:00+01:00 (ISO 8601) en 1326883500 (unixtimestamp) en PHP?

63voto

k102 Points 3481

Ce code convertit une date et heure au format ISO 8601 en un timestamp Unix en UTC.

echo date("U",strtotime('2012-01-18T11:45:00+01:00'));

Version plus longue :

$dateTime = new DateTime('2012-01-18T11:45:00+01:00');
$dateTime->setTimezone(new DateTimeZone('UTC'));
$utcTimestamp = $dateTime->getTimestamp();
echo $utcTimestamp;

16voto

John Slegers Points 509

Pour convertir de l'ISO 8601 au timestamp Unix :

strtotime('2012-01-18T11:45:00+01:00');
// Sortie : 1326883500

Pour convertir du timestamp Unix à l'ISO 8601 (fuseau horaire du serveur) :

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Sortie : 2012-01-18T11:45:00+01:00

Pour convertir du timestamp Unix à l'ISO 8601 (GMT) :

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Sortie : 2012-01-18T10:45:00+00:00

Pour convertir du timestamp Unix à l'ISO 8601 (fuseau horaire personnalisé) :

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Sortie : 2012-01-18T05:45:00-05:00

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X