Forskel mellem datoer år-måned-dag-time-minut-sekund
Jeg sidder og bakser lidt med lidt datohalløj. Det er nemt nok at finde antallet af dage og andre små enheder mellem 2 datoer. .getTime() og divider med passende faktor. 1000 så har du sekunder. Dermed kan du få sekunder, timer, dage og sågar uger uden problemer. hvis man ligger inden for 100år, så kan man bare dividerer dage med 365.25 og man får det man vil have. o0(uagtet at et år faktisk er 365.256 dage).Jeg vil gerne have mit return i datoformat. år-måneder-dage-timer-minutter-sekunder-millisekunder. Jeg er nået til år-måneder-dage, men jeg er desværre ikke færdig med at teste om det virker i 100% så langt. Mit problem er at metoden er indviklet og dermed er der stor chance for at noget går galt.
Nogen der har en simpel metode? Eller en som er testet og som virker?
<script>
function deltaDatoKort(dato2,dato1) {
var days=new Array()
days[0]=31
days[1]=28
days[2]=31
days[3]=30
days[4]=31
days[5]=30
days[6]=31
days[7]=31
days[8]=30
days[9]=31
days[10]=30
days[11]=31
var dato1=new Date(dato1)
var dato2=new Date(dato2)
var aar1=dato1.getFullYear()
var aar2=dato2.getFullYear()
var maaned1=dato1.getMonth()
if(maaned1<10) { maaned1="0"+maaned1 }
var maaned2=dato2.getMonth()
if(maaned2<10) { maaned2="0"+maaned2 }
var dag1=dato1.getDate()
if(dag1<10) { dag1="0"+dag1 }
var dag2=dato2.getDate()
if(dag2<10) { dag2="0"+dag2 }
var nr1=""+aar1+""+maaned1+""+dag1
var nr2=""+aar2+""+maaned2+""+dag2
var aar=+nr2-nr1
aar=String(aar)
aar=aar.substr(0,aar.length-4)
if(aar=="-" | aar=="") {
aar="0"
}
var nr3=""+maaned1+""+dag1
var nr4=""+maaned2+""+dag2
var maaned=+nr4-nr3
maaned=String(maaned)
maaned=maaned.substr(0,maaned.length-2)
if(maaned=="-") {
maaned="11"
}
if(maaned<0) {
maaned=+11+parseInt(maaned)
}
if(maaned=="") {
maaned="0"
}
if (((aar2 % 4 == 0) && (aar2 % 100 != 0)) || (aar2 % 400 == 0)) {
days[1] = 29;
}
else {
days[1] = 28;
}
var nr5=dag1
var nr6=dag2
var dag=+nr6-nr5
if(dag<0) {
dag=days[parseInt(maaned2-1)]+dag
}
return(aar+","+maaned+","+dag)
}
dato2=new Date()
dato2.setFullYear(2003)
dato2.setDate(24)
dato2.setMonth(10)
dato2=dato2.getTime()
dato1=new Date()
dato1=dato1.getTime()
document.write(deltaDatoKort(dato2,dato1))
</script>
60% for en god metode, som giver et godt resultat.