Вопрос

YouTube возвращает Updated date а также Submitted on дата следующей: 2010-08-22T04:46:18.000Z

Есть ли функция PHP или маска даты, которая анализирует это?

Это было полезно?

Решение

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

Это использует DateTime учебный класс. Это часовая и дробная секунды осведомлены. Чтобы отобразить дату, используйте format Метод:

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

Для преобразования даты в местный часовой пояс Используйте 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

Другие советы

звучит как Strtotime Это то, что вы ищете.

РЕДАКТИРОВАТЬ: Если это не сработает, взгляните на Уроки даты и времени - Существуют методы дат анализа в указанных форматах (как это - не возвращает временной метки напрямую, но если вы создаете из этого DateTime, вы можете использовать ее GetTimestAmp-method)

Попробуй это:

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

«Z» в конце, кажется, проблема для Strtotime.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top