Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #1

    Problema con Formattazione data

    Ciao

    Lavorando in JS per creare una data uso questa forma, che sinora ha sempre funzionato:
    codice:
    var tmp  = new Date(1947, 1, 12); 
    var data1 = new Date(tmp.getFullYear(), tmp.getMonth()-1, tmp.getDate());
    document.write(data1.toLocaleDateString())
    che quando vado a stampare mi restituisce la giusta data 12/1/1947.

    Ora ho un problema con questo piccolo script:
    codice:
    function calculateAge(birthday, now) { 
        var nowYear = now.getFullYear(); 
        var birtYear = birthday.getFullYear(); 
        var age = nowYear - birtYear; 
        return age; 
    } 
    
    var oggi = new Date(); 
    var tmp  = new Date(1947, 1, 12); 
    var data1 = new Date(tmp.getFullYear(), tmp.getMonth()-1, tmp.getDate()); 
    var tmp  = new Date(1991, 01, 29); 
    var data2 = new Date(tmp.getFullYear(), tmp.getMonth()-1, tmp.getDate()); 
    var tmp  = new Date(1963, 08, 28); 
    var data3 = new Date(tmp.getFullYear(), tmp.getMonth()-1, tmp.getDate()); 
    
    var eta1 = calculateAge(data1, oggi); 
    var eta2 = calculateAge(data2, oggi); 
    var eta3 = calculateAge(data3, oggi); 
    
    document.write("tra " + oggi.toLocaleDateString() + " e "  
            + data1.toLocaleDateString() + ":<br />") 
    document.write(eta1 + " anni<br />"); 
    document.write("tra " + oggi.toLocaleDateString() + " e "  
            + data2.toLocaleDateString() + ":<br />") 
    document.write(eta2 + " anni<br />"); 
    document.write("tra " + oggi.toLocaleDateString() + " e "  
            + data3.toLocaleDateString() + ":<br />") 
    document.write(eta3 + " anni<br />"); 
    che mi restituisce:
    tra 27/1/2016 e 12/1/1947:
    69 anni
    tra 27/1/2016 e 1/2/1991:
    25 anni
    tra 27/1/2016 e 27/8/1963:
    53 anni
    Gli anni restituiti immagino che siano giusti ma ho problema con le date che mi vengono restituite.
    La prima data (12/1/1947) è giusta
    La seconda e la terza data sono sbagliate e non riesco a capirne il motivo.

    La seconda data restituita è 1/2/1991 invece di 29/1/1991.
    La seconda data restituita è 27/8/1963 invece di 28/8/1963.

    Il codice mi sembra corretto, ma non riesco a capire questi errori.

    Grazie se riuscirete a farmi superare questo errore.

    Ultima modifica di micdas; 27-01-2016 a 01:33

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.