Autor Zpráva
AM_
Profil
Zdravím,
chtěl bych se zeptat, jestli je dostatečně přesné, když chci nalézt datum/čas v určitém intervalu od daného data (myslím např. o 3 hodiny dříve, o 2 dny později), používat funkci mktime, např. mktime(0, 0, 0, date("m")-2, date("d"), date("Y"));
Možná je to hloupý dotaz, v PHP manuálu píší, že to takto "je možné použít", ale píši momentálně aplikaci, kde na přesnosti opravdu záleží, a tak bych se chtěl přesvědčit, že se to takhle opravdu dělá.
Majkl578
Profil
co treba
$pred3hod = time() - 60*60*3;
$za2dny = time() - 60*60*24*2;
ninja
Profil
Urcite bych pouzil funkci strtotime(). Pri praci s timestamp je problem u zimniho/letniho casu, kdy ne vsechny dny 86400 sekund.
AM_
Profil
Majkl578:
Tohle je přesně to, co se hodně nabízí, ale je to dost nepřesné, nejen kvůli letnímu času.
Problém jsou:
- různé délky měsíců
- přestupné roky
- různé délky dnů! nevím, jestli je unixový timestamp a vůbec čas v počítači zohledňuje, ale cca 1-2x do roka je den o sekundu kratší
- zmíněný letní čas

ninja v čem by mi více pomohl strtotime oproti mktime? vstup mktime je mnohem uhlazenější - 6 čísel se má předávat jako 6 čísel, ne jako řetězec, strtotime je spíše vhodná pro parsování např. uživatelského vstupu data, který nemusí mít stálý formát.

Otázka zněla, jestli je přičítání/odčítání data přes mktime dostatečně přesné.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: