0

私のデータベースでは、日付のデフォルト値がに設定されてnot null 0000-00-00おり、日付形式を使用して日付date("F j, Y, ");を印刷しています。

strtotime次のように関数を使用して日付をエコーすると、

echo date("F j, Y", strtotime($row_schedule['meeting_date']));

November 30, -0001設定されたデフォルトの日付に基づいて返されます0000-00-00

一方、dateのデフォルト値をの0000-00-00ようなリアルタイムの日付に更新すると、次のように2013-02-28適切な出力が得られます。

February 28, 2013

私の質問は、現在の出力方法を使用0000-00-00せずに、デフォルトの日付を印刷するにはどうすればよいですか?November 30, -0001

4

4 に答える 4

2

いつでも独自の関数を作成できます

function myDate($time){
  if($time == '0000-00-00')
     return $time;
  return date("F j, Y", strtotime($time));
}

そしてちょうどecho myDate($row_schedule['meeting_date']);

于 2013-03-14T10:46:12.520 に答える
1

条件を追加し、

echo $row_schedule['meeting_date'] == '0000-00-00'?
'your default time/string':
date("F j, Y", strtotime($row_schedule['meeting_date']));
于 2013-03-14T11:00:13.087 に答える
1

strtotime無効な日付に対して false を返します - これは整合性チェックを行う場所です。

$time = strtotime($var_from_db);
if($time!==false)
  echo date("F j, Y", $time);
于 2013-03-14T10:48:32.740 に答える
0

他の簡単な方法は

if ($row_schedule['meeting_date'] == '0000-00-00') {
echo '0000-00-00';
}else{
echo
date("F j, Y g:i A", strtotime($row_schedule['meeting_date']));
}

ありがとう、

于 2013-03-14T12:06:05.280 に答える