web-dev-qa-db-fra.com

Convertir ISO 8601 en unixtimestamp

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

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

Pour convertir ISO 8601 en unixtimestamp:

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

Pour convertir unixtimestamp en ISO 8601 (serveur de fuseau horaire):

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

Pour convertir de unixtimestamp en ISO 8601 (GMT):

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

Pour convertir de unixtimestamp en ISO 8601 (fuseau horaire personnalisé):

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