6

私はこの形式でフィードから日付を取得しています:

2009-11-04T19:55:41Z

date()PHPの関数を使用してフォーマットしようとしていますが、次のエラーが表示されます。

date() は、パラメーター 2 が長いことを想定しており、オブジェクトは /bla/bla.php で指定されます

を使用してとpreg_replace()を削除しようとしましたが、まだ機能しません。TZ

4

5 に答える 5

14

strtotime日付形式を Unix タイムスタンプに変換する素晴らしい関数です。

これにより、あなたが求めているものが得られます:

date('my format here', strtotime('2009-11-04T19:55:41Z'));
于 2009-11-04T23:26:51.403 に答える
12

どうですか

\DateTime::createFromFormat(\DateTime::ATOM, $AtomDate); // converting Atom date to object

また

date(\DateTime::ATOM, $timestamp); // formatting timestamp to Atom time

または両方

$dto = \DateTime::createFromFormat(\DateTime::ATOM, $AtomDate);
date('d-M-Y H:i:s', $dto->getTimestamp()); // formatting Atom date to anything you want

またはさらに良い

$dto = \DateTime::createFromFormat(\DateTime::ATOM, $AtomDate);
$formattedDate = $dto->format('d-M-Y H:i:s');

またはタイムゾーン付き(コメントで述べたように

$dto = \DateTime::createFromFormat(
    \DateTime::ATOM,
    $ticketUpdatedAt,
    new \DateTimeZone('UTC')
);
$ticketUpdatedDate = $dto->format('Y-m-d H:i:s');
于 2013-03-19T20:07:27.483 に答える
2

使ってみてくださいstrptime:

$date = strptime($str, "Y-m-d\TH:i:s\Z");
于 2009-11-04T23:28:32.180 に答える
1

strtotime関数を使用できます。

echo date('Y-M-D', strtotime($feedDate));
于 2009-11-04T23:26:43.737 に答える
1

これは、UTC (したがって Z) で指定された、日付と時刻を組み合わせた標準 ISO 8601 形式です。

を使用して解析できる場合があります

DateTime::createFromFormat('c', '2009-02-03');

または、それが失敗した場合 (PHP が ISO 8601 を理解していると主張している場合はそうではありません)、Z を "+00:00" に置き換えることができます。

于 2009-11-04T23:27:21.770 に答える