Problema con date

di il
6 risposte

Problema con date

Ciao!

ad una funzione passo la data in questo formato: 2020-05-29
ma ha problemi con il giorno.

in sostanza:

function initTimer(idTimer, giorno) {
    let d = new Date(giorno);
    let year = d.getFullYear();
    let month = d.getMonth() + 1;
    let day = d.getDay();
    console.log(giorno);
    console.log(day)
}
mi stampa questo:

2020-05-29
5

6 Risposte

  • Re: Problema con date

    fermat ha scritto:


    ad una funzione passo la data in questo formato: 2020-05-29
    ma ha problemi con il giorno.
    Più che altro, non è che "ha problemi", ma si direbbe che è il mese.
    Perché non "splitti" la stringa e usi un costruttore di Date() più "controllabile", con la possibilità di indicare esplicitamente anno, mese e giorno?

    Ad esempio:
    
    new Date(2020, 4, 29);
    
    Per problemi legati alle rappresentazioni internazionali, ci sono anche librerie che ti vengono in aiuto, come Moment.js per citarne una.

    Ciao!
  • Re: Problema con date

    Ciao alka.

    si conosco moment.js, però devo usare questa data in un'unico script, in un'unica pagina.
    mi sembrava inutile insomma.

    cmq ho provato così:
    
        let date = giorno.split("-");
        let d = new Date(date[0], date[1], date[2]);
        let year = d.getFullYear();
        let month = d.getMonth() + 1;
        let day = d.getDay();
        console.log(day);
        console.log(date);
    
    ottengo questo:
    
    1
    Array(3) [ "2020", "05", "29" ]
    
  • Re: Problema con date

    fermat ha scritto:


    cmq ho provato così:
    [...]
    ottengo questo:
    
    1
    Array(3) [ "2020", "05", "29" ]
    
    Devi usare parseInt() sulle singole parti della data ottenute dallo split().

    Ciao!
  • Re: Problema con date

    Si avevo provato, ma forse sto sbagliando cmq.
    
        let date = giorno.split("-");
        let d = new Date(parseInt(date[0]), parseInt(date[1]), parseInt(date[2]));
        let year = d.getFullYear();
        let month = d.getMonth();
        let day = d.getDay();
        console.log(d);
        console.log(day);
        console.log(date);
    
    
    Date Mon Jun 29 2020 00:00:00 GMT+0200 (Ora legale dell’Europa centrale)
    1
    Array(3) [ "2020", "05", "29" ]
    
  • Re: Problema con date

    fermat ha scritto:


    Si avevo provato, ma forse sto sbagliando cmq.
    Leggi la e scoprirai perché...

    Ciao!
  • Re: Problema con date

    Alka ha scritto:


    fermat ha scritto:


    Si avevo provato, ma forse sto sbagliando cmq.
    Leggi la e scoprirai perché...

    Ciao!
    ok grazie, adesso vedo!
Devi accedere o registrarti per scrivere nel forum
6 risposte