Visualizzazione dei risultati da 1 a 3 su 3

Discussione: differenza di date

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259

    differenza di date

    differenza di date

    per la libreria wedev del tempo, io e mackey abbiamo sviluppato questo prototipo dell'oggetto Date()

    codice:
    	Date.prototype.sottrai=function(datB) {
    		b=(!datB || datB.constructor!=Date)?new Date():datB;
    		b.setTime(Math.abs(this.getTime()-b.getTime()));
    		b.setFullYear(b.getFullYear()-1970);
    		return b;
    	}


    in sostanza avendo una data settata, possiamo sottrarne un'altra ed ottenerne una terza... ma c'è un problema... provando questo script:

    codice:
    oggi=new Date(2004,02,05,10,30,00)
    nasc=new Date(1987,02,05,10,30,00)
    diff=oggi.sottrai(nasc);
    la data "diff" dovrebbe essere 01/01/17 0:0:0, invece risulta essere 02/01/17 1:0:0

    lo script funziona se vengono aggiunte queste due righe

    //b.setHours(b.getHours()-1);
    //b.setDate(b.getDate()-1);

    ma non è molto logico... qualcuno sa dirmi qualcosa?

    grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Azzardo... le date (espresse in millisecondi) sono conteggiate a partire da 1 gennaio 1970... e influisce anche il fuso orario

    Ho fatto questa prova:
    document.write(new Date(0))

    ed il risultato e':
    Thu Jan 1 01:00:00 UTC+0100 1970

    Infatti, se cambi il fuso orario e lo imposto a GMT il risultato sara':
    Thu Jan 1 00:00:00 UTC 1970

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    bene, non avevamo ipotizzato il fuso orario, e per fortuna funziona... allora il nostro stratagemma per l'ora funziona, anche se penso agiremo un attimo diversamente (abbiamo infatti una proprietà UTC), a questo punto quel DUE al posto dell'UNO penso sia a posto...

    ti ringrazio molto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.