2010-07-14 20 views
10

ile çıkıyorum: {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}smarty ve tarih

Ama nasıl 20 gün sonra olsun?

şimdi ise: 2010 05 05 12:12:12, ben 2010 25 05 12:12:12

cevap

6

strtotime() php işlevini kullanın ve smarty için Değişkeninizi atamak göstermek istiyoruz. Böyle bir şey: şablonda Sonra

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

:

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

teşekkürler ama ben PHP kodu kullanarak olamaz. Belki sadece Smarty ile karar var mı? – lolalola

+0

Artık tamamen akıllıca dayanan ve PHP kodu gerektirmeyen diğer cevaplar var. – skrilled

18

{$smarty.now} olduğunu (1970 yılından bu yana saniye sayısı) basit zaman damgası. Yani sadece istediğiniz kadar kendisine birçok saniye ekleyebilirsiniz: o zaman {assign} ve/veya {math} direktifleri matematik yapmak gerekebilir değil eski sürümlerinde bu, Smarty3 çalışır

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

.

+0

Bu ayrıca Smarty 2'de çalıştığını onaylayabilir. – crmpicco

3

strtotime() öğesini doğrudan bir düzenleyici olarak kullanabilirsiniz. o herhangi bir dize strtotime olacak smarty daha yeni sürümlerinde

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

Eğer

Önlerine yani ..... 1 gün, 2 gün ekleyin: {"+20 days"|date_format:"%Y-%m-%d"}

-1

smarty test edilmiştir: yerine {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'} yapmanın da yapabileceğiniz, {"now"|date_format:'%Y-%m-%d %H:%M:%S'}

20 gün sonra tarihi almak için yapabileceği Dinamik tarihte .365 gün.

$one= date("Y-m-d", strtotime(date("Y-m-d", strtotime('$add dynamic date variable')) . " + 1 day")); 
    $this->smarty->assign('one',$one); 

$two= date("Y-m-d", strtotime(date("Y-m-d", strtotime('$add dynamic date variable')) . " + 2 day")); 
    $this->smarty->assign('two',$two); 
... 
.. 

$oneyear= date("Y-m-d", strtotime(date("Y-m-d", strtotime('$add dynamic date variable')) . " + 365 day")); 
    $this->smarty->assign('oneyear',$oneyear); 
0
{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'}