Vypis dnu v tydnu v template

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
saimons
Člen | 293
+
0
-

Jak by se dala vypsat zkratka dnu v tydnu? Datum vypisuji klasicky:

<?php
	{!$film->cas|date:'%d. %m. %Y / %a / %H.%M'}
?>

kde %a je zkratka dnu v tydnu, ale anglicky. Zkousel jsem na ostrem serveru pouzit SetLocale(LC_ALL, „Czech“), ale to tam nefunguje. Pak je moznost pomoci %w, ktere vrati cislo dne, ale otazka je jak to pak prevest na spravnou zkratku dnu (napr. st – jako streda)?

newPOPE
Člen | 648
+
0
-
<?php
        {!$film->cas|toCzDay'}
?>

a ten helper si napises pokial si vies vytiahnut cislo dna tak previest to uz taky problem nie je ;-).

<?php
	$czDays = array('Ned', 'Pon', ....);
	echo $cdDays[date("w")];
?>

vsetko z hlavy takze to fungovat nemusi, ale hadam som vystihol myslienku

westrem
Člen | 398
+
0
-

newPOPE napsal:

Ano toto je quick & dirty solution, ale automaticky predpoklada, ze chces vypisovat len to jedno.

Riesenie

Podla mna je najlepsie si prepisat (zaregistrovat vlasnty) date helper, ktory bude fungovat nasledovne:

  1. posle vstup na povodny date
  2. ak vysledok bude obsahovat napr ~czDay (interna skratka, format je na tebe) tak sa nahradi prislusnym dnom, resp prislusnym udajom (ak si zavedies viac skratiek).

Takto ti ostava vyhoda povodneho date, mas vsak novu funkcionalitu a nemusis sa babrat s nejakym dalsim helperom.

voda
Člen | 561
+
0
-

Ahoj, u mě nastavení locale funguje:

$ php -r 'setlocale(LC_ALL, "cs_CZ.utf8"); echo strftime("%a\n");'
Čt

Jen je potřeba mít daná locale vygenerovaná. Lze zjistit pomocí příkazu locale -a

saimons
Člen | 293
+
0
-

Diky za vase info setlocale(LC_ALL, „cs_CZ.utf8“) funguje.

_Martin_
Generous Backer | 679
+
0
-

Funguje to i na Windows, nebo jen Linux?

saimons
Člen | 293
+
0
-

Tohle mi slo ve win: SetLocale(LC_ALL, „Czech“) a to druhe na Linuxu