Smarty date_format不适用于“0000-00-00 00:00”

时间:2012-01-17 20:07:10

标签: datetime smarty

当显示变量{$request.date}显示正确时,日期从变量“$ request.date”中的数据库拉出“0000-00-00 00:00:00”。 但是,当我尝试格式化时,例如{$request.date|date_format:"%Y-%m-%d"}它显示今天的日期。

我需要以某种方式检查数据库的日期是否为空,例如所有零,如果它显示其他东西

I used to have
{if $request.date|date_format:"%Y"} == "1999"}
Date NOT Set
{else}
Date Set
{/if}

但是在转移到新服务器之后我不再工作,因为日期不同。

有没有办法使用mid或left函数来获得年份?我试过{$number|string_format:"%d"},但它显示0我不确定这是不是时间或年份。

2 个答案:

答案 0 :(得分:0)

为什么你不能用这个?

{if $request.date == "0000-00-00 00:00:00"}
    Date NOT Set
{else}
   Date Set to {$request.date|date_format:"%Y-%m-%d"}
{/if}

答案 1 :(得分:0)

最好先使用

在PHP中清理日期
  $timestamp = strtotime($date_string); //where date_string has the format 0000-00-00 ...

在使用smarty之前,请使用date_format 修饰符 由于您从数据库中提取内容,因此您必须在PHP中的数组中循环返回的内容(如果它是多维的)并对"date"索引进行操作。 希望这会有所帮助。