web-dev-qa-db-ja.com

スマートでデート

私は日付を取得します:{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}

しかし、どうやって20日後になるのでしょうか?

今なら:2010 05 05 12:12:12、見せたい2010 25 05 12:12:12

13
lolalola

strtotime() php関数を使用して、変数をsmartyに割り当てます。このようなもの:

<?php
$later = strtotime('+20 day');
$smarty->assign('later', $later);
?>

次に、テンプレートで:

{ $later|date_format:'%Y-%m-%d %H:%M:%S'}
8
Cfreak

{$smarty.now}は単純なタイムスタンプ(1970年からの秒数)です。したがって、必要なだけ秒数を追加できます。

{$smarty.now+20*24*60*60|date_format:'%Y-%m-%d %H:%M:%S'} //+20 days

これはSmarty3で機能します。古いバージョンではない場合は、{assign}および/または{math}ディレクティブを使用して計算を行う必要がある場合があります。

19
serg

Strtotime()を修飾子として直接使用できます。

{"+20 days"|strtotime|date_format:"Y/m/d"}
3
mohrt

Smartyの新しいバージョンでは、先頭に追加する文字列をstrtotimeします

つまり{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}を実行する代わりに、{"now"|date_format:'%Y-%m-%d %H:%M:%S'}を実行することもできます。

今から20日後の日付を取得するには、次の操作を実行できます。

{"+20 days"|date_format:"%Y-%m-%d"}

1
skrilled
{assign var="iItemOne" value=$smarty.now}
{assign var="iItemTwo" value=1296000} //60*60*24*15-> for 15 days
{assign var="iSum" value=$iItemOne+$iItemTwo}

{$iSum|date_format:'%Y-%m-%d %H:%M:%S'}
0
Sagar kumar