web-dev-qa-db-fra.com

Comment convertir une date/heure au format ISO 8601 PHP

Comment convertir mon heure du 2010-12-30 23:21:46 au format de date ISO 8601? (-_-;)

78
wow

Orienté Objet

C'est la manière recommandée.

$datetime = new DateTime('2010-12-30 23:21:46');

echo $datetime->format(DateTime::ATOM); // Updated ISO8601

De procédure

Pour les anciennes versions de PHP, ou si vous êtes plus à l'aise avec le code procédural.

echo date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'));
187
alex

Après PHP 5, vous pouvez utiliser ceci: echo date("c"); forme un format de date/heure ISO 8601.

http://ideone.com/nD7piL

Note pour les commentaires:

En ce qui concerne this , ces deux expressions sont valables pour le fuseau horaire, pour le format de base: ±[hh]:[mm], ±[hh][mm], or ±[hh].

Notez cependant que + 0X: 00 est correct et que + 0X00 est incorrect pour une utilisation étendue. Il est donc préférable d'utiliser date("c"). Une discussion similaire ici .

34
trante

Comment convertir en ISO 8601 en unixtimestamp:

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

Comment convertir ununtimestamp en ISO 8601 (serveur de fuseau horaire):

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

Comment convertir unixtimestamp en ISO 8601 (GMT):

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

Comment convertir 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
2
John Slegers

Si vous essayez de définir une valeur dans datetime-local

date("Y-m-d\TH:i",strtotime('2010-12-30 23:21:46'));

//output : 2010-12-30T23:21
0
Rúbia Alves