2012-01-17 8 views
1

変数variableYBを表示すると、可変長の "$ request.date"にデータベースから "0000-00-00 00:00:00"という日付が引き出されました正しいことを示します。 しかし、私はそれをフォーマットしようとするとき。 {$request.date|date_format:"%Y-%m-%d"}代わりに今日の日付が表示されます。スマートdate_formatは "0000-00-00 00:00"で動作しません

データベースの日付が空であるかどうかどうか調べる必要があります。すべてゼロと、それは

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

何か他のものを示すが、日付が異なっているため、新しいサーバーに転送した後、私はもう動作しない場合です。

年を取得するために中間または左関数を使用する方法はありますか?私は{$number|string_format:"%d"}を試しましたが、これは時間または年であるかどうかわかりません0を表示します。

+0

私はこの問題を理解していないのですか?データベースには '0000-00-00 00:00:00'の日付がありますか?そして 'date_format'はそれを正しく表示できません(あなたの場合は' 0000-00-00'です)?もしそうなら、あなたのコードでは '1999年は何ですか? –

+0

1999年を何とか無視してください。1999年に表示されていた古いサーバーで、現在の2011年に0000を表示します。 – JohnA

+0

私はあなたのコードで2つの大きな問題を見ることができます。一つは、 '{if}'条件で修飾子を使うことはできないと思います。二つは '{}'の中括弧を入れ子にすることはできません。 –

答えて

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} 
0

それはあなたが、あなたは、データベースからコンテンツを引っ張っているのでSmartyの中であなたが をdate_format修飾子を使用する前に最初の

$timestamp = strtotime($date_string); //where date_string has the format 0000-00-00 ... 

を使用してPHPでのあなたの日付をクリーンアップするのが最善ですPHPの配列で返されたコンテンツ(多次元の場合)をループして、その"date"インデックスで操作する必要があります。 これが役立つことを願っています。

関連する問題