Pregunta

YouTube devuelve la fecha y Updated date Submitted on de la siguiente manera: 2010-08-22T04:46:18.000Z

¿Hay una función de PHP, o una máscara fecha que analiza esto?

¿Fue útil?

Solución

$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"
// }

Se utiliza el href="https://www.php.net/manual/en/class.datetime.php" rel="nofollow noreferrer"> DateTime clase format método :

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

Para convertir la fecha de utilización zona horaria local del método 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

Otros consejos

strtotime es lo que estás buscando.

EDIT: Si esto no funciona, echar un vistazo a la Fecha y hora clases - existen métodos para analizar las fechas en formatos especificados ( como esto - no vuelve directamente a una marca de tiempo, pero si se construye un DateTime de esto, se puede utilizar de getTimestamp -method)

Prueba esto:

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

El "z" al final parece ser el problema para strtotime.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top