Autor Zpráva
quatzael
Profil
Mám script, který počítá rozdíl mezi daty vyjádřený jako počet dnů. Potřeboval bych to poupravit, aby to vyjadřovalo roky.
Nevíte prosím někdo jak na to?
vstupní proměnné jsou ve tvaru dd.mm.yyyy

function datediff(x,y){
var xa = x.split(/\D/), ya = y.split(/\D/);
var xd = Date.UTC(xa[2], xa[1]-1, xa[0]), yd = Date.UTC(ya[2], ya[1]-1, ya[0]);
return (yd - xd)/86400000;
}
Chamurappi
Profil
Reaguji na quatzaela:
Kdyby ti stačil rok jako 365.25 dne, tak stačí výsledek dělit tímto číslem.
Jinak se to dělá tak, že odečteš jeden rok od druhého, tento rozdíl si zapamatuješ a přičteš k tomu prvnímu datu, pak obě data zase porovnáš a pokud je první menší než druhé, ubereš od zapamatovaného rozdílu jedničku.
quatzael
Profil
Chamurappi:
Kdyby ti stačil rok jako 365.25 dne, tak stačí výsledek dělit tímto číslem.
To právě nestačí..

...tento rozdíl si zapamatuješ a přičteš k tomu prvnímu datu
No ale jak přičtu? Je možné k datumu nějak přičíst roky s tím, že bude automaticky ošetřen i přestupný rok?
Chamurappi
Profil
Reaguji na quatzaela:
datum.setYear(datum.getYear() + roky);
quatzael
Profil
Chamurappi:
Díky, to by snad mělo fungovat.

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:

0