2016-03-21 11 views
0

MySQLのクエリから日付を取得すると、そのうちのいくつかは不明なためNULLです。 しかし、date_createを使用してそれらをPHPに変換すると、nullの日付は今日の日付に置き換えられます。これは私が望むものではありません。 日付オブジェクト内の日付properetyをnullに設定しようとしました。空の文字列は使用できません。 このデフォルトの日付を取り除く方法はありますか?DateTimeオブジェクトに空の日付を挿入するにはどうすればよいですか?

+2

いいえ! 「空の」DateTimeオブジェクトはどのように見えるでしょうか? 「空の」DateTimeオブジェクトで実際に何をしますか? –

+0

実際、私はアプリケーションをColdFusionからPHPに翻訳しています。 CFでは、空の日付を受け取った場合、すべてのdate fromating関数は空文字列を返します。空文字列は一貫しており、非常に少数です。 PHPでは、これはエラーを生成します。私は感謝しています。私は日付を使用する必要があるたびにヌル日付をチェックする必要があります。 – user3542945

答えて

1
$created_date = $date === null ? null : date_create($date); 

これは、それ以外の場合はdate_create($date)にそれを設定し、$dateがnullの場合はnullに$created_dateを設定し、三元式です。

+0

はい、それはnullオブジェクトを作成します、私はむしろ実際の日付オブジェクトの内部にnull日付を持っています。 – user3542945

+0

[OK]をクリックしますが、これによりnullオブジェクトが作成されます。私はむしろ、実際のDateオブジェクトの中にnullの日付を持つでしょう。しかし、それは何もないより良いです、ありがとう。 – user3542945

+0

あなたは何を意味するのか本当に分かりませんか?ヌル日付オブジェクトはどのくらい正確に動作すると予想されますか?ヌルデーの年月日は何ですか?実際の日付にヌルデートを追加するとどうなりますか? – Chris

1

DateTimeオブジェクトに日付文字列を解析できない場合は、おそらくnullに設定されています。

私はDateTime::createFromFormatを使用して提案したいと思います。

// Adjust the format to your requirements 
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009'); 

は、あなたの質問に良く見てみる時に、私は考え出したあなたにも行うことができます。

if (is_null($date)) { 
    $date = "0000-01-01"; 
} 

$date = DateTime::createFromFormat('Y-m-d', $date); 

この方法は、日付が第一の可能な日に設定されます(0000 1月1日)

関連する問題