2017-06-30 17 views
0

datepickerのフォーマットはd/m/Yです。dateformatを変換しようとすると致命的なエラーが発生する

日付をdatepickerからデータベースにY-m-dの形式で送信しようとしています。

私はそれのために次のスクリプトを使用しています:

$myDateTime1 = DateTime::createFromFormat('d/m/Y', $single_cal4); 
$newSingle_cal4 = $myDateTime1->format('Y-m-d'); 

私はこのスクリプトを実行すると、私は次のエラーを取得:

Fatal error: Call to a member function format() on a non-object in /send1.php on line 80 

ライン80を次のとおりです。

$newSingle_cal4 = $myDateTime1->format('Y-m-d'); 

私はこのスクリプトが他のページでも動作していることを確認してください。私はこのエラーを取得していますなぜ誰かが知っていて、それが

答えて

1

アレックスHowanskyは右である、あなたは$myDateTime1が有効であるかどうかをチェックすべきことでこれを行う:

try { 
    $myDateTime1 = DateTime::createFromFormat('d/m/Y', $single_cal4); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 
$newSingle_cal4 = $myDateTime1->format('Y-m-d'); 
+0

これで私はもう致命的なエラーにはなりません。しかし、私はそのスクリプトがうまくいかない理由を理解していません。私が$ single_cal4をエコーすると、私は得る:23/06/2000。これはd/m/Yです – John

2

=これは単に$myDateTime1DateTime::createFromFormat('d/m/Y', $single_cal4);$single_cal4が有効な日付ではないことを意味し、失敗したことを意味したオブジェクトではないことを意味どのように私は修正することができません。エラーが発生したときに返される内容については、​​のドキュメントを参照してください。あなたはそれが正しく働くことを確認するために小切手を追加したいと思うでしょう。

+0

しかし、この場合、$ single_cal4の日付は '23/06/2000'となります。なぜこれは有効な日付ではありませんか? – John

0

あなたは()createFromFormatを機能させる文字列としての第2のパラメータ$ single_cal4を渡す必要があります。 http://php.net/manual/en/datetime.createfromformat.php

を参照する2番目のパラメータは、それが文字列として渡されたとき、あなたは望ましい結果

$myDateTime1 = DateTime::createFromFormat('d/m/Y', '23/06/2000'); 
echo $newSingle_cal4 = $myDateTime1->format('Y-m-d'); 

アウトを取得した文字列

$myDateTime1 = DateTime::createFromFormat('d/m/Y', 23/06/2000); 
echo $newSingle_cal4 = $myDateTime1->format('Y-m-d'); 

として渡されていないので、以下のコードを入れて、エラーを与える: 2000 -06-23

これは、デバッグに役立つことを願っています。

関連する問題