2017-07-05 20 views
0

私はPHPで次の問題に取り組んでいます。 私は、これらの変数があります。日付と日付を変換する日と月の位置を変更しました

$ fecha = "2017年1月7日を";

$ hora = "11:30";

今私は、フォーマットY-M-DのHと日付変数を作成したい:私は。私は、次のコードを使用していますそのために

$newDate = date("Y-m-d H:i", strtotime($fecha.' '.$hora)); 

しかし、私は、出力取得しています:2017年7月1日午前11時30

:私はそれをする必要が

echo $newDate = 2017-01-07 11:30 

私は間違って何をしていますか?

答えて

2

〜デモ

$dt = DateTime::createFromFormat('d-m-Y H:i', $fecha.' '.$hora); 
$newDt = $dt->format('Y-m-d H:i'); 

最初に(S)あなたの文字列を解析するためにhttps://eval.in/827662

+0

Philありがとう、それは動作しますが、私は変数に出力を割り当てる必要があります。私は試みました:$ newDt = $ dt-> format( 'Y-m-d H:i');しかし、それは動作しません。 – mvasco

+0

MySQLテーブルのdatetimeフィールドに出力を保存する必要があります。私は何をすべきか? – mvasco

+1

@mvasco '$ newDt = $ dt-> format( 'Y-m-d H:i')'は間違いなく動作するはずです。 'format'呼び出しは単に文字列を返します。私はデモを更新しました – Phil

-1

変更にあなたのコード:私はちょうど日付関数の周り 'H' & 'd' を切り替える

$newDate = date("Y-d-m H:i", strtotime($fecha.' '.$hora)); 

注意してください。

+0

DateTime APIを使用して、あなたはここでやっているすべては、**出力の日と月を交換しています。 OPの目的のために解析された日付はまだ間違っています – Phil

+0

Philさんの答えは正しいですが、MySQLのテーブルのdatetimeフィールドに出力値を保存する必要があります。 – mvasco

関連する問題