Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.

Diskuze: PHP - České datum

PHP PHP PHP - České datum American English version English version

Avatar
oggymotslp
Člen
Avatar
oggymotslp:

Zdravím,

mám problém. Pracuji na datech, aby to vypsalo měsíce česky. To funguje, ale když tam je červen, tak to píše �ERVEN. A fontem, ani kódováním UTF-8 to není. Když to Č napíšu zvlášť, tak to funguje. Takže problém bude někde v nastavení těch měsících..

Používám

<?php
SetLocale(LC_ALL, "Czech");

$month = StrFTime("%B", strtotime($clanek['news_date']));
?>

Pokud by někdo věděl jak to opravit, tak bych byl moc rád :)

Editováno 5.6.2016 13:32
Odpovědět 5.6.2016 13:32
Proč to dělat jednoduše, když to jde i složitě :D
Avatar
Odpovídá na oggymotslp
Dominik Gavrecký:
<?php
SetLocale(LC_ALL, "Czech");
$datum = StrFTime("%d/%c/%Y %H:%M:%S %z %B", Time());
echo($datum);
?>

Chyba teda bude niekde tu

$clanek['news_date']
Editováno 5.6.2016 13:48
Nahoru Odpovědět 5.6.2016 13:47
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Martin Štěpánek (Enormyk):

Nevyřešilo by tvůj problém toto? :-)

$mesice = array('Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');
$mesic = StrFTime("%m", Time())+1;
echo($mesice[$mesic]);
Nahoru Odpovědět  +1 5.6.2016 14:00
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
Martin Štěpánek (Enormyk):

EDIT:

$mesic = StrFTime("%m", Time())-1;

Má tam být mínus, protože ti to vrací měsíce od 1, ale pole se počítá od 0. :-)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 5.6.2016 14:07
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
oggymotslp
Člen
Avatar
oggymotslp:
$clanek['news_date']

Je pouze datum zapsané 29-05-2016.

$mesice = array('Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');
$mesic = StrFTime("%m", Time())+1;
echo($mesice[$mesic]);

Nevyřešilo, protože dělám na systému článků, a chci, aby to napsalo datum vytvoření ve formátu: 29. Červen 2016. A když jsem tam zkoušel dosadit: $clanek['news_da­te'], tak to nefunguje..

Nahoru Odpovědět 5.6.2016 17:47
Proč to dělat jednoduše, když to jde i složitě :D
Avatar
Odpovídá na oggymotslp
Martin Štěpánek (Enormyk):
$datum = explode('-', $clanek['news_date']);

$mesice = array('Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');
$mesic = StrFTime("%m", $datum[1])-1;

echo($datum[0].'. '.$mesice[$mesic].' '.$datum[2]);
  • snad to funguje, nezkoušel jsem to :-)

Popřípadě bych ti doporučil použít zdejší knihovnu pro práci s datem: http://www.itnetwork.cz/…-datum-a-cas
:-)

Nahoru Odpovědět 10.6.2016 14:15
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.