IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 3. diel - Dokončenie knižnice DateUtils v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
MArtin
Člen
Avatar
MArtin:29.10.2015 16:20

Chem sa opytat ako by sa dala tato utilitka upravit pre multyjazycny web?
Okrem zmeny jazyka stavovych sprav, treba aj rozne formaty casu.
Proceduralne som riesil chybove hlasky kodom a za kodmi bol slovnik pre kazdy jazyk a casove formaty boli tiez v nejakom poli...

 
Odpovedať
29.10.2015 16:20
Avatar
Jiří Fabšic:14.9.2016 21:56

Tak nevím jak to děláš!!! Na webu se nenajdou lepší tutoriály, knihovny, výklad. Díky moc za knihovnu !

 
Odpovedať
14.9.2016 21:56
Avatar
Miroslav Mucha:16.8.2018 15:59

Díky za skvělou knihovnu. zkusil jsem ji aplikovat na svůj projekt a funguje bezvadně. Jenom s výjimkami jsem narazil. Přestože odchytávání výjimek jsem v v jednom z minulých seriálů prošel důkladně krok za krokem, tady trochu tápu. Blok try je jasný a v případě bezchybné validace vrátí TRUE. Co mě zarazilo, je to, že blok catch je prázdný a metoda vrátí pouze hodnotu FALSE. Zkusil jsem do něj vložit výpis chyby prostřednictvím echa (mám pocit, že tento způsob není to pravé), pak mi aplikace sice vypíše chybu, ale vždy jen "Neplatná hodnota" a nikdy nevypsala chybu z pole $errorMessages. Prosím o radu a předem děkuji.

 
Odpovedať
16.8.2018 15:59
Avatar
Petr Kateřiňák:5.3.2019 12:26

Připadá mi, že to DateTime moc nefunguje.

Když si vytvořím časovou značku:

$thisFriday = strtotime('this friday'); //8.3.2018

Tak celá takhle knihovna při zavolání prettyDate vyplivne 7. března. Nevím, v čem je problém, ale když si provedu malý test, tak výsledek je stejný:

$thisFriday = strtotime('this friday');
echo date('j.n.Y', $thisFriday);   // 8.3.2018
$thisFridayDT = new DateTime('@' . $thisFriday);
echo $thisFridayDT->format('j.n.Y'); //7.3.2018

Použití DateTime tedy asi nebude moc přesné a vhodné pro takovouto knihovnu. Máte nějaký nápad jak toto vyřešit?

 
Odpovedať
5.3.2019 12:26
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Petr Kateřiňák
David Hartinger:5.3.2019 14:43

Když používáš timestamp, tak musíš počítat s tím, že je to závislé na časové zóně. Asi máš různé časové zóny, změň si jí na jedné straně. Je to jeden z mnoha důvodů, proč by se timestamp neměl používat.

Odpovedať
5.3.2019 14:43
New kid back on the block with a R.I.P
Avatar
Odpovedá na David Hartinger
Petr Kateřiňák:5.3.2019 17:56

Chápu Davide, díky, přešel jsem plně na DateTime

 
Odpovedať
5.3.2019 17:56
Avatar
Patrik Pastor:17.2.2021 19:55

Chtel bych se zeptat, proc je '29.2. 2014' invalidni datum, ale '29.2. 2012' uz je validni? (pouze zmena jednoho cisla)

 
Odpovedať
17.2.2021 19:55
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Patrik Pastor
DarkCoder:17.2.2021 20:48

Den 29.2. je platný, pokud je aktuální rok přestupný. Přestupný rok se řídí určitými pravidly. Rok 2012 byl přestupný, proto datum 29.2.2012 je validní. Rok 2014 ovšem přestupným nebyl, tudíž den 29.2:2014 nemohl nastat a je tudíž nevalidní.

Odpovedať
17.2.2021 20:48
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Luděk Štrobl:5.5.2022 8:34

Funkce parseDateTime nehází správnou výjimku. Problém je ve funkci in_array, po nahrazení za array_key_exit funguje jak má.

// Vyvolání chyby
if ($errors['warning_count'] + $errors['error_count'] > 0)
{
    if (array_key_exists($format, self::$errorMessages))
        throw new InvalidArgumentException(self::$errorMessages[$format]);
    else
        throw new InvalidArgumentException('Neplatná hodnota');
}
 
Odpovedať
5.5.2022 8:34
Avatar
Odpovedá na Luděk Štrobl
Daniel Horák:24. júna 9:26

mně to vypisovalo varování na vyhodnocení podmínky

if ($errors['warning_count'] + $errors['error_count'] > 0)

Trying to access array offset on value of type bool
Tak jsem ji rozšířil

if ($errors && ($errors['warning_count'] + $errors['error_count'] > 0))
 
Odpovedať
24. júna 9:26
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!