Autor Zpráva
AM_
Profil
Zdravím,
potřeboval bych v JavaScriptu určit rozdíl dvou časových údajů s uvážením všech anomálií.
Možná se toho týkají jen přechody letní/zimní čas, časové údaje budou vzdálené max. 24 hodin (tedy jsou ve stejném dni nebo dvou po sobě následujících), takže přestupné roky mne nezajímají.

v PHP to lze řešit krásně pomocí vestavěných funkcí, některé výpočty bych ale potřeboval aby se dopočítávaly v javascriptu podle aktuálního stavu formuláře, bohužel jsem ale nenašel jednoduchý způsob, jak to řešit v javascriptu. Má na to javascript nějakou funkci?

Příklad: mám třeba datum 24.10.2009 vedle sebe políčka od a do; někdo zadá od: 22:00 do: 9:00, přičemž by JS vedle měl vypsat "11 hodin celkem"
- pokud je od > do, je to chápáno jako přesah do dalšího dne
- 11 h, protože to je zrovna delší noc

Díky.
keeehi
Profil
AM:
řešil bych to takto:
22:00 a 9:00 - "první - druhý"
9:00 a 22:00 -"první - druhý+24"
9:00 a 9:00 "24"
a ty dva delší a kratší dny dodatečně ošetřit podmínkou
_es
Profil
AM_
Nejako si upraviť tento kód ti nevyhovuje?
AM_
Profil
Eh, jde mi hlavně o ty jinak dlouhé dny. Díky za snahu, ale počítat umím taky, jen jsem se chtěl vyhnout psaní funkce pro zjišťování, kdy je přechod na zimní a letní čas a jestli to není zrovna to datum a čas nepřekrývá 2-3 hodiny ráno. Taková funkce tedy opravdu vestavěná není? nebo alespoň někde hotová?
_es
Profil
AM_
kdy je přechod na zimní a letní čas

Veď ti stačí len z údajov z miestneho časového pásma vytvoriť objekty Date
a potom z rozdielu milisekundových hodnôt (metóda getTime) vyrátaš časový rozdiel.
Toto by malo vyriešiť všetky problémy s letným a zimným časom.
Kajman_
Profil *
Když datumy uložíte v lokálním čase a pro výpočet použijete univerzální čas, tak se přechody rešit nemusí, nebo se pletu?
_es
Profil
Kajman_
Presne to som sa snažil vysvetliť.
Kajman_
Profil *
_es:
Jasnačka, kdyby to tu bylo, když jsem začal psát, tak bych ani nezačínal :-)
AM_
Profil
_es
tisíceré díky, konečně se to chová, jak má.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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