web-dev-qa-db-ja.com

PHPでISO8601を日付形式に変換する方法

これを変換する方法(ISO8601形式): 2014-03-13T09:05:50.240Z

これには(MySQL DATE形式): 2014-03-13

pHPで?

18
Neel

これを試して

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime($date));

日付関数の完全なドキュメントはここにあります: http://php.net/manual/en/function.date.php

PHP関数 "strtotime"は何もせず、タイムストリングをUNIXタイムスタンプに変換します。

私が助けてくれることを願っています:)

PS:strtotimeが0を返す場合に備えて、これを使用してみてください:

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime(substr($date,0,10)));
28
ThatMSG

PHP _5.2.0_なので、[〜#〜] oop [〜#〜]を使用して実行できますおよび DateTime() (もちろん、OOPを好む場合):

_$now = new DateTime("2014-03-13T09:05:50.240Z");
echo $now->format('Y-m-d');    // MySQL datetime format
_
14
Faisal

strtotime を使用して日時の説明をUnixタイムスタンプに変換し、次に Date Formats を使用して5つの形式に変換する

ぜひお試しください。

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime($date));
1
Mitul Shah

非効率的な時間関数を使用する理由はありません。最も効率的な方法は、最初の10文字を単純に抽出することです。

substr($date,0,10)
1
Wiimm