web-dev-qa-db-ja.com

カーボン解析日付形式

次のような形式の日付を解析しようとしています:

2017-09-20T10:59:10.0000000 01:00

私はカーボンを使っているので、試してみました:

Carbon::createFromFormat('Y-m-dTH:i:s.u vP', $date)

どの出力:

The timezone could not be found in the database\n
Unexpected data found.\n
Data missing

最後のタイムゾーン引数はおそらく間違っていると思いますが、その日付形式を解析する方法を見つけることができませんでした:/

手伝ってくれてありがとう !

5
Louis R

たとえば、タイムゾーンに記号を追加する必要があります。

+01:00

次に、これはあなたのために働くでしょう:

Carbon::createFromFormat('Y-m-d\TH:i:s.0000000 P', $date)

文字列に-01:00を含めることができるが、+01:00の代わりに01:00を取得する場合は、最初にこれを実行します。

$timezone = str_after($date, ' ');
if ($timezone[0] !== '-') {
    $date = str_before($date, ' ') . ' +' . $timezone;
}
5
Alexey Mezenin