2016-06-23 2 views
0

私はこのようになります日付文字列があります。この文字列をdatetimeに変換するにはどうすればよいですか?

Mon Jun 20 2016 00:00:00 GMT-0400 (Eastern Daylight Time)

をし、私はこのような%Y-%m-%d %H:%i mysqlのdatetime列に挿入します。私はPHP DateTimeを使ってみましたが、2つのタイムゾーンがあるのでエラーが出ます。返される文字列は、使用しているAPIの関数の戻り値であるため変更できません。これを正しい形式にするにはどうすればよいですか?

+1

'strtotime()'を使ってみましたか? –

+1

'timezone'で日付をデータベースに保存しますか? – Mohammad

+0

私は文字列を使用しましたが、これは私にこれを与えます:1969-12-31 19:00。また、私はタイムゾーンを必要としません、私はDB内のすべてのものを直ちに保つために1つのタイムゾーン(または多分unix時間)を使用するように修正するつもりです。 –

答えて

1

あなたはこれをしようとした場合:

$string = 'Mon Jun 20 2016 00:00:00 GMT-0400 (Eastern Daylight Time)'; 
$string = preg_replace('/\(.*\)/', '', $string);// remove (Eastern Daylight Time) 
echo date('Y-m-d H:i', strtotime($string)); 

はプリントアウトになります。このことができます

'2016年6月20日0時00分'

希望を。

+0

1969年12月31日19時00分に実際にプリントアウトしました。私は同じイヤラーを試しましたが、理由を理解できませんでした。実際、それは文字列全体(東の昼光を含む)にあります。問題にする必要があります、私は最初にそれを取り除くために文字列をフォーマットする必要があります。 –

+0

@NickCabrera私のコードを更新しました。してください。 –

+0

@NickCabreraはい、有効な書式ではないので、テキストの赤を最初に取得する必要があります。私は 'preg_replace'を使ってこれを行いました。あなたの問題を解決したら、これを答えとして記入してください。乾杯! –

関連する問題