Question

YouTube renvoie la Updated date et la date de Submitted on comme suit: 2010-08-22T04:46:18.000Z

Y at-il une fonction PHP ou un masque de date Parsis cela?

Était-ce utile?

La solution

$dt = DateTime::createFromFormat("Y-m-d\TH:i:s.uP", "2010-08-22T04:46:18.000Z");
var_dump($dt);
// object(DateTime)#1 (3) {
//   ["date"]=>
//   string(26) "2010-08-22 04:46:18.000000"
//   ["timezone_type"]=>
//   int(2)
//   ["timezone"]=>
//   string(1) "Z"
// }

utilise la classe DateTime . Il est fuseau horaire et les fractions de seconde au courant. Pour afficher la date utiliser la méthode format :

echo $dt->format("Y-m-d H:i:s e");
// 2010-08-22 04:46:18 Z

Pour convertir la date à l'utilisation du fuseau horaire local la méthode setTimezone :

$dt->setTimezone(new DateTimeZone(date_default_timezone_get()));
echo $dt->format("Y-m-d H:i:s e");
// 2010-08-21 21:46:18 America/Los_Angeles

Autres conseils

strtotime est ce que vous cherchez.

EDIT: si cela ne fonctionne pas, jetez un oeil à la page date et heure des classes - il existe des méthodes pour l'analyse des dates dans des formats spécifiés ( comme celui-ci - ne retourne pas un horodatage directement, mais si vous construisez un DateTime de cela, vous pouvez l'utiliser getTimestamp -method)

Essayez ceci:

$date=substr("2010-08-22T04:46:18.000z",0,strlen("2010-08-22T04:46:18.000z")-1);
$stamp=strtotime($date);

Le « z » à la fin semble être le problème pour strtotime.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top