Ako pridať 1 hodinu casu?

Česká/Slovenská podpora pro CMS Made Simple
Post Reply
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Ako pridať 1 hodinu casu?

Post by Joseph777 »

zdravim

vystupom {$cas|date_format:'%-H:%M'} su hodnoty napr. 16:30, 10:00 atd
potrebujem ale k $cas priratat 1 hodinu (teda vystup by bol 17:30, 11:00 atd)

ako na to?
bunak
Forum Members
Forum Members
Posts: 75
Joined: Mon Sep 10, 2007 1:58 pm
Location: Pardubice

Re: Ako pridať 1 hodinu casu?

Post by bunak »

nezkoušel si {$cas+1|date_format:'%-H:%M'} ? bylo by to takové přímočaré řešení hodné php
nebo místo $cas
date_add($cas, date_interval_create_from_date_string('1 hour'))
kuzmany
Power Poster
Power Poster
Posts: 448
Joined: Tue Oct 10, 2006 5:00 pm
Location: Bratislava

Re: Ako pridať 1 hodinu casu?

Post by kuzmany »

Cez uzivatelsky tag: http://chod.sk/aztw3
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Ako pridať 1 hodinu casu?

Post by Joseph777 »

kuzmany wrote:Cez uzivatelsky tag: http://chod.sk/aztw3
takze sa to da len cez UDT?

ako ale? neviem ako to mam spravit (assignovat do smarty) kedze pri $cas je toto {$cas['@attributes']['zaciatok']}
bunak
Forum Members
Forum Members
Posts: 75
Joined: Mon Sep 10, 2007 1:58 pm
Location: Pardubice

Re: Ako pridať 1 hodinu casu?

Post by bunak »

není to třeba, ve smarty šabloně napíšeš blok

{php}
jakýkoliv php kód, který se při parsování šablony vykoná
např. $cas = date($cas, strtotime ("+1 hour"));
{/php}

a v něm si můžeš s proměnou $cas dělat co se ti zlíbí, viz funkce pro práci s čase v php http://www.php.net/manual/en/function.time.php
funkce, které by ti mohly vyhovovat jsou strtotime http://php.net/strtotime a date_add http://www.php.net/manual/en/function.date-add.php
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Ako pridať 1 hodinu casu?

Post by Joseph777 »

bunak wrote:není to třeba, ve smarty šabloně napíšeš blok

{php}
jakýkoliv php kód, který se při parsování šablony vykoná
např. $cas = date($cas, strtotime ("+1 hour"));
{/php}
diky a mozes mi napisat ako by to malo vyzerat nakolko niesom v php zdatny (pokusal som sa to cez udt ale ako si mi to nefungovalo)
moja premenna je {$cas['@attributes']['zaciatok']|date_format:'%-H:%M'}

nasiel som aj nieco taketo lenze neviem ako to mam aplikovat

Code: Select all

{"+1 hour"|date_format:"%H:%M:%S"}
http://www.smarty.net/forums/viewtopic. ... bed1f58390
kuzmany
Power Poster
Power Poster
Posts: 448
Joined: Tue Oct 10, 2006 5:00 pm
Location: Bratislava

Re: Ako pridať 1 hodinu casu?

Post by kuzmany »

Vytvor UDT posun_cas. Je to pisane z hlavy:

Code: Select all

$smarty = cmsms()->GetSmarty();

if(!isset($params['mojcas']))
return;
$cas = $params['mojcas'];

$format =  'Y-m-d H:i:s';
if(isset($params['format']))
$format = $params['format'];

$posun = 3600;
if(isset($params['posun']))
$posun= $params['posun'];

$novy_cas =  date($format, strtotime($cas) + $posun);

if(isset($params['assign']))
$smarty->assign($params['assign'], $novy_cas);

return  $novy_cas;
Pouzitie:

Code: Select all

{posun_cas mojcas=$cas format='H:M' posun=3600}
Pricom premenna posun je v sekundach.

Kurva chalani, ale toto su uplne zaklady...
Post Reply

Return to “Czech/Slovak - Česky/Slovensky”