| Autor | Zpráva | ||
|---|---|---|---|
| gaminn Profil * |
#1 · Zasláno: 21. 8. 2006, 21:15:35
Zdravím,
jakým způsobem lze získat lokální reprezentaci data a času pro danou lokalitu vybranou pomocí setlocale(LC_TIME, 'xxxxxx'); Funkce strftime() podporuje %x a %X parametry pro lokální datum (ve formátu DD.MM.YYYY pro češtinu) a čas (HH:MM:SS). To je ale málo, co když chci, abych pro češtinu dostal výstup např. 21. srpna 2006 ekvivalentně pro angličtinu jako August 21st 2006 apod. |
||
| Anonymní Profil * |
#2 · Zasláno: 21. 8. 2006, 22:01:53
no pokial je mi znamo tak sklonovat mesiace nevie, tj je mozne dostat akorat tak 21. srpen 2006 a stym anglickym st, nd, rd, th je to asi podobne... vzdy si vsak mozes napisat vlastnu func
|
||
| havs Profil |
#3 · Zasláno: 21. 8. 2006, 22:08:24
Já si radší psával vlasní skript s polem, protože to na každém hostingu chodilo jinak, někde vůbec. Doma mi třeba nefunguje den ve formátu 1-10 (%e).
setlocale(LC_ALL, 'cz-CZ'); $loc = setlocale(LC_TIME, NULL); echo strftime("%A %e %B %Y %H:%M:%S"); |
||
| gaminn Profil * |
#4 · Zasláno: 21. 8. 2006, 22:12:53
To znamená, že bych si musel pro každou lokalizaci napsat vlastní datové a časové vzory (tedy nejspíš jen ty datové, čas mi stačí tak, jak jej lze získat pomocí %X). Něco jako %den. %měsíc %rok pro češtinu, %měsíc %den%přípona %rok pro angličtinu. A ty obsluhovat vlastní funkcí. Opravdu ale nikdo neví o nějakém hotovém řešení, zdá se mi to jako problém, který už musel být někdy řešen.
|
||
| gaminn Profil * |
#5 · Zasláno: 21. 8. 2006, 22:17:23
Koukám na Místní a jazykové nastavení v ovládacích panelech mých Windows, u každého je uveden čas, krátký a dlouhý formát data. Čas a krátký formát data lze získat pomocí funkce strftime(), já bych ale potřeboval i ten dlouhý, věřím, že bude v php někde ukryt;) Jen nevím kde...;)
|
||
| havs Profil |
#6 · Zasláno: 22. 8. 2006, 02:29:40 · Upravil/a: havs
proč se patlat s tím setlocale(), které stejně blbne,
někam nahoru bych includoval funkci: function czdat($datum) { $datum = strtotime($datum); $den = array("Mon" => "pondělí", "Tue" => "úterý", "Wed" => "středa", "Thu" => "čtvrtek", "Fri" => "pátek", "Sat" => "sobota", "Sun" => "neděle"); $mesic = array(1=>"ledna", "února", "března", "dubna", "května", "června", "července", "srpna", "září", "října", "listopadu","prosince"); echo $den[date("D", $datum)].date(", j. ", $datum); echo $mesic[date("n", $datum)].date(" Y G:i:s", $datum); } a pak stačí vkládat: echo czdat("2006-08-22 01:49:36"); nebo: echo czdat(1156204176); a řádek: $datum = strtotime($datum); umazat |
||
| Anonymní Profil * |
#7 · Zasláno: 22. 8. 2006, 02:35:46
az na to ze echo czdat() nevracia hodnotu, vysledkom bude NULL, ked uz tak bez toho echo.. len czdat() to je len taka drobna poznamka :)
|
||
| havs Profil |
#8 · Zasláno: 22. 8. 2006, 02:49:56
Asi to tam být nemá, já uživatelské fce nepoužívám - nepostřehnul jsem, protože mi to tady funguje i s echem - mám tu test v druhém okně.
|
||
| gaminn Profil * |
#9 · Zasláno: 22. 8. 2006, 12:04:34
havs
Tato funkce je podle mě trochu těžkopádná, pro mě je důležité, abych si mohl vybírat různé formáty data a času (minimálně 3 - lokální reprezentaci času, krátký formát data a dlouhý formát data), a navíc na svém webu pracuji s více jazyky, než jen s češtinou. Takže asi nezbývá, než si napsat vlastní řešení, napsat si pro každý jazyk, v jakém formátu data a časy zobrazovat. |
||
|
Časová prodleva: 20 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0