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

而如果我将日期的默认值从更新为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

strtotime对于无效日期返回 false - 这是您应该进行完整性检查的地方。

$time = strtotime($var_from_db);
if($time!==false)
  echo date("F j, Y", $time);
于 2013-03-14T10:48:32.740 回答
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 回答
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 回答