2016-12-07 18 views
0

ある日付が他の日付と等しいかどうかを確認しようとしていますが、フォームからの日付形式が異なる"パーズ"コードを取得すると、注文します。 私は試合を見つけるために、この日付をフォーマットする必要があり、ここに私がしようとしていますどのように表示するには、サンプルコードです:探しのためのLaravel 5.3を使用して日付が他の日付と等しいか確認してください。

... 

// $ago will give me this date: 2016-12-09 00:00:00 
$ago = Carbon\Carbon::today()->addDays(2); // Todays date + 2 days 

//$request->datex has the date coming from a form with this format, '12-06-2016'. 

// Once a parse $request->datex here, the date gets out of order: 
$my_date = Carbon\Carbon::parse($request->datex); 
// it shows the date like this, 2016-09-12 00:00:00 , I need it to be on this format: 2016-12-09 00:00:00 

// then I could do this: 

if ($ago$ == $my_date) { 

    dd($my_date.' is equal to: '.$ago); 

}else{ 

    dd(' Not equal!'); 

} 
... 

ありがとう!

+0

「2016-09-12」のような日付があると、 2016年12月9日、または2016年12月9日。だから、Piotrは、初期化時に期待されるフォーマットを指定する必要があることは間違いありません。そうでなければ、解析はそれを一方的に扱います。 –

答えて

0

PHPは、DD-MM-YYYYまたはMM/DD/YYYY形式を想定しています。

あなたは常にMM-DD-YYYYの形式を持っている場合は、解析する前にこれを行うことができます:

$request->datex = str_replace('-', '/', $request->datex); 
+0

私はこの日付形式を変換する予定です:'12 -06-2016 '。 2016-12-06 00:00:00 – Andre

+0

私がここで言ったように、スラッシュの代わりにハイフンを使用しているので、12月6日は12月6日ではなく12月6日と解釈されます。書式を指定するか、ハイフンを置き換えます。 – Devon

1

変更このラインこれで

$my_date = Carbon\Carbon::parse($request->datex); 

$my_date = Carbon::createFromFormat('m-d-Y', $request->datex) 

私はあなたのフォーマットが'12-06-2016'を意味すると仮定しました。DAY-MONTH-YEAR

UPDATE は、私のマシン上で私の解決策をテストし、それが動作し、日付が正しく認識されています

$request->datex = '12-06-2016' 

その後、

$my_date = \Carbon\Carbon::createFromFormat('m-d-Y', $datex); 

が私にそのような日付を与えた場合:public 'date' => string '2016-12-06 18:52:09.000000' (length=26)

日付が適切に解析されました。今私が仮定してきたこと。これらの日付は、時間、分、秒、およびミリ秒の同じ原因ではありません。これを修正するには、日付を次のように比較する必要があります。

if ($ago->format('Y-m-d') == $my_date->format('Y-m-d')) 
    //do something awesome with our equal dates 
+0

おそらく私より優れた解決策です。 – Devon

+0

これは私にエラーを与えます - "分離記号は後続データに見つかりませんでした"。 – Andre

+0

セミコロンの接尾辞を追加/追加しましたか? – Devon

関連する問題