Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Calcolo di una data con Javascript

    Buongiorno a tutti,
    vorrei creare un piccolo script (il mio primo script a dir la verità ) che faccia questo:
    fornita una data tramite un campo di input lo script deve calcolare la data antecedente di 60 giorni.
    Qualcuno potrebbe darmi una piccola "dritta" su quale funzione o metodo utilizzare per fare questo piccolo calcolo?
    Grazie mille a tutti.

    JerryLeeLewis

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, potresti leggere questo o questo intanto.

  3. #3
    Allora, ho iniziato a studiare :-) ma non mi uccidete se ho scritto delle baggianate.
    Fin'ora ho scritto questo:
    codice:
    <body>
    
      <p>Seleziona la data di inizio dell'evento: <input type="date" name="datacongresso"></p>
      
      <p><input type="submit" value="Seleziona" /> <input type="reset"></p>
    
    
    <script>
      var iniziocongresso = new Date();
      document.write(iniziocongresso);
    </script>
    
    
    </body>
    ora se carico la pagina il document.write mi stampa a video la data corrente in quanto in new Date non ho settato nulla.
    Ora io non riesco a capire come faccio a dire a new Date di utilizzare la data selezionata nel campo di input.
    Potete aiutarmi?
    Grazie

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Ma sei sicuro che nel campo “datacongresso” avrai una data valida? E in che formato?
    Ultima modifica di cavicchiandrea; 07-11-2017 a 19:28
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Ciao Andrea, per ora posso fare anche a meno del controllo sulla validità della data. Il formato dovrebbe essere quello classico italiano gg/mm/aaaa.
    Io vorrei che alla pressione del tasto "Seleziona" la data inserita venga passata alla variabile "iniziocongresso".

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    codice HTML:
    <html>
    <head>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/locale/it.js"></script>
    </head>
    <body>
    <p>Seleziona la data di inizio dell'evento: <input type="date" name="datacongresso" id="data"></p>
    <p><input type="submit" value="Seleziona"><input type="reset"></p>
    <p>Data Selezionata</p>
    <p id="risultato"></p>
    <p>Data meno 60 giorni</p>
    <p id="risultato-sg"></p>
    
    <script>
    $( "input[type=submit]" ).click(function() {  
      let data = moment( $( "#data" ).val() );  
      $( "#risultato" ).html( data.format('LL') );  
      $( "#risultato-sg" ).html( data.subtract(60, 'day').format('LL') );
    });
    </script>
    </body>
    </html>
    Questo è un esempio che ho fatto al volo, utilizzando jquery e moment, cliccando su seleziona ti stampa la data selezionata e quella 60 prima.
    Ultima modifica di M4V1; 08-11-2017 a 14:54

  7. #7
    ti ringrazio molto ma io vorrei imparare a farlo in javascript

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Il javascript moderno è fatto di moltissime librerie come jquery e moment, che è sempre bene conoscere.
    E' sempre più difficile trovare script totalmente in javascript "puro".

    Detto questo:

    codice:
    // prende la data dall'input
    var input = document.getElementById("data").value;
    var data = new Date(input);
    
    
    // mostra la data nel div con id "risultato"
    document.getElementById("risultato").innerHTML = data;

    Questo codice è riferito all'html che ti ho postato nel messaggio precedente.

    Per calcolare la data indietro di 60 giorni devi fare una sottrazione considerando la lunghezza dei vari mesi, è una cosa un po' complicata (è anche per questo che la libreria moment è così usata) e secondo me è il famoso "reinventare la ruota", ma se lo fai come esercizio di scrittura di codice può essere qualcosa di utile.

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.