Chcę uzyskać liczbę lat między dwiema datami. Mogę uzyskać liczbę dni między tymi dwoma dniami, ale jeśli podzielę ją przez 365, wynik jest nieprawidłowy, ponieważ niektóre lata mają 366 dni.Jak mogę obliczyć liczbę lat między dwiema datami?
To jest mój kod, aby uzyskać datę różnicę:
var birthday = value;//format 01/02/1900
var dateParts = birthday.split("/");
var checkindate = new Date(dateParts[2], dateParts[0] - 1, dateParts[1]);
var now = new Date();
var difference = now - checkindate;
var days = difference/(1000*60*60*24);
var thisyear = new Date().getFullYear();
var birthyear = dateParts[2];
var number_of_long_years = 0;
for(var y=birthyear; y <= thisyear; y++){
if((y % 4 == 0 && y % 100 == 0) || y % 400 == 0) {
number_of_long_years++;
}
}
Ilość dni działa idealnie. Próbuję zrobić dodać dodatkowe dni, kiedy to w roku 366-dni, a ja robię tak:
var years = ((days)*(thisyear-birthyear))
/((number_of_long_years*366) + ((thisyear-birthyear-number_of_long_years)*365));
Dostaję licznik rok. Czy to jest poprawne, czy jest lepszy sposób na zrobienie tego?
Mogło to działać? http://www.datejs.com/ –
To jest ** javascript ** nie ** [jquery] (http://jquery.com) ** – Matt
mm rzeczywiście dodać dodatkowe dane jest źle, myślę, że tak będę usunąć to –