NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: PHP - České datum

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
oggymotslp
Člen
Avatar
oggymotslp:5.6.2016 13:32

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ý:5.6.2016 13:47
<?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 :5.6.2016 14:00

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
5.6.2016 14:00
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
Martin Štěpánek :5.6.2016 14:07

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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
5.6.2016 14:07
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
oggymotslp
Člen
Avatar
oggymotslp:5.6.2016 17:47
$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 :10.6.2016 14:15
$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
Všechno jde naprogramovat, chce to jen čas a chuť...
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.