Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    5

    Trasformare secondi in giorni, ore, minuti

    Ciao a tutti ho il seguente problema:

    devo trasformare dei secondi in ore, giorni e minuti partendo da due date.
    Le date in questione sono:
    19/02/2017 ore 7.44 (millisecondi 1487486640000)
    31/03/2017 ore 4.23 (millisecondi 1490926980000)

    Inizialmente le trasformo in millisecondi, che ho indicato sopra, li divido per mille per avere i secondi, da qui faccio la differenza tra i secondi per ottenere l'intervallo in secondi tra le date.

    L'intervallo in secondi risulta essere: 3440340.

    Da questo punto uso questo codice per ottenere i giorni, le ore, i minuti, ecc.
    Codice:
    codice:
    giorni = Math.floor(intervallo / 86400);
    secondi_resto = intervallo - (giorni * 86400);
    ore = Math.floor(secondi_resto / 3600);
    secondi_resto = intervallo - (giorni * 86400) - (ore * 3600);
    minuti = Math.floor(secondi_resto / 60);
    secondi_resto = intervallo - (giorni * 86400) - (ore * 3600) - (minuti * 60);
    Da questo codice ottengo i seguenti risultati:

    giorni: 39 ore: 19 minuti: 39

    il calcolo che faccio io mi da un risultato differente e cioè:

    giorni: 39 ore: 20 minuti: 39

    Ho fatto delle prove sembra che tutto sia dovuto all'ora legale/solare.

    1) 19/2 dalle 7,44 - 10/3 alle 4,23 il risultato é 18 gg 20 h 39 m
    2) 19/2 dalle 7,44 - 26/3 alle 4,23 il risultato é 34 gg 20 h 39 m
    3) 19/2 dalle 7,44 - 27/3 alle 4,23 il risultato é 35 gg 19 h 39 m
    4) 19/2 dalle 7,44 - 28/3 alle 4,23 il risultato é 36 gg 19 h 39 m

    5) 19/9 dalle 7,44 - 29/10 alle 4,23 il risultato é 39 gg 20 h 39 m
    6) 19/9 dalle 7,44 - 30/10 alle 4,23 il risultato é 40 gg 21 h 39 m

    Il discorso, come si vede dall'esempio, si verifica anche al ritorno dell'ora solare, fissata per il 29/10 alle 2.00.

    Come posso gestire questa cosa?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Quote Originariamente inviata da Vasomik Visualizza il messaggio
    Come posso gestire questa cosa?
    Spiegaci quale ritieni debba essere il risultato corretto e perche'.
    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 L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Io con entrambe le mie versioni ottengo 39:19:39


    codice HTML:
    <script>
    // versione 1
    var a = 1490926980000 - 1487486640000;
    a = a /1000;
    giorni  = parseInt(a/86400);
    resto   = a - (giorni * 86400);
    ore     = parseInt(resto/3600);
    resto   = resto - (ore *3600);
    minuti  = parseInt(resto/60);
    resto   = resto - (minuti *60);
    secondi = resto;
    alert(giorni+'-'+ore+'-'+minuti+':'+secondi);
    
    
    // versione 2
    var a = 1490926980000 - 1487486640000;
    a = a /1000;
    giorni  = parseInt(a/86400);
    resto   = a%86400;
    ore     = parseInt(resto/3600);
    resto   = resto%3600;
    minuti  = parseInt(resto/60);
    secondi = resto%60;
    alert(giorni+'-'+ore+'-'+minuti+':'+secondi);
    </script>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2024 vBulletin Solutions, Inc. All rights reserved.