Visualizzazione dei risultati da 1 a 10 su 10

Discussione: da stringa a data

  1. #1

    da stringa a data

    Ciao a tutti,
    devo controfrontare 2 date; la prima la recupero da un campo di testo, la seconda la scrivo in formato stringa manualmente.
    Come posso fare?

    Questo l'esempio che non va:
    codice:
      if (f.dal.value>'25/05/2009') {
      alert("superiore");
      f.dal.focus();  
      return false;
     }
    f.dal.value è il campo da convertire in data.

    Fatemi sapere.
    Grazie mille!

  2. #2
    regolati da questo script di esempio:
    <html>
    <head>
    <script type="text/javascript">
    x=new Array();
    function mydate()
    {
    data1= new Date(Date.UTC(2009,06,25,0,0,0));
    time1=Date.parse(data1);
    elem=document.myform.data.value;
    x=elem.split("/");
    data2= new Date(Date.UTC(x[2],x[1],x[0],0,0,0));
    time2= Date.parse(data2);

    if(time2>time1)
    {alert("La data del campo è superiore");}
    else{alert("La data del campo è inferiore");}
    }
    </script>
    </head>
    <body>
    <form name="myform">
    <input type="text" name="data" size="10">


    <input type="button" value="Clicca"onclick="mydate()">
    </form>
    </body>
    </html>
    fammi sapere se hai problemi,ciao

  3. #3
    Grazie mille, provo un pò, se ho difficoltà riscrivo!!

  4. #4
    Provato, tutto perfetto!!!

    Ora però un altro problema, il contronto devo farlo tra un campo stringa (dove c'è una data) sommato ad un altro campo stringa (dove c'è un numero 7 - 14 - 21 - 28)

    Come posso modificare?

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    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

  6. #6
    non riesco a trovare la somma di una data + un intero.
    f.dal.value --> data
    parseInt(f.notti.value) --> intero

  7. #7
    se non ho capito male questo è il codice che ti serve(ho modificato il precedente):
    <html>
    <head>
    <script type="text/javascript">
    x=new Array();

    function data()
    {
    data1=document.myform.dat.value;
    data2=document.myform.altra_data.value;
    x=data1.split("/");
    x[0]=parseInt(x[0])+parseInt(data2);
    if((x[0]>31) &&((x[1]=="01")||(x[1]=="03")|| (x[1]=="05")||(x[1]=="07")||(x[1]=="08")||(x[1]=="10")||(x[1]=="12")))
    {
    x[0]="01";
    x[1]=parseInt(x[1])+1;
    if (x[1]<=9)
    {
    x[1]="0"+x[1];
    }

    }

    if((x[0]>30) &&(x[1]=="04"||x[1]=="06"|| x[1]=="05"||x[1]=="09"||x[1]=="11"))
    {
    x[0]="01";
    x[1]=parseInt(x[1])+1;
    if (x[1]<=9)
    {
    x[1]="0"+x[1];
    }
    }
    if((x[0]>28) &&(x[1]=="02"))
    {
    x[0]="01";
    x[1]="03";

    }

    data_set= new Date(Date.UTC(2009,06,25,0,0,0));
    time1=Date.parse(data_set);


    data2_result= new Date(Date.UTC(x[2],x[1],x[0],0,0,0));
    time2= Date.parse(data2_result);
    if(time2>time1)
    {alert("La data del campo è superiore");}
    else{alert("La data del campo è inferiore");}
    }

    </script>
    </head>
    <body>
    <form name="myform">
    Data:<input type="text" name="dat" size="10"/>


    Numero:<input type="text" name="altra_data" size="10"/>


    <input type="button" value="Invia"onclick="data()">
    </form>

    </body>
    </html>

  8. #8
    codice:
    
      x=new Array();
     data1= f.dal.value;
     data2=f.notti.value;
     x=data1.split("/");
     x[0]=parseInt(x[0])+parseInt(data2);
     if((x[0]>31) &&((x[1]=="01")||(x[1]=="03")|| (x[1]=="05")||(x[1]=="07")||(x[1]=="08")||(x[1]=="10")||(x[1]=="12")))
     {
     x[0]="01";
     x[1]=parseInt(x[1])+1;
     if (x[1]<=9)
     {
     x[1]="0"+x[1];
     }
    
     }
    
     if((x[0]>30) &&(x[1]=="04"||x[1]=="06"|| x[1]=="05"||x[1]=="09"||x[1]=="11"))
     {
     x[0]="01";
     x[1]=parseInt(x[1])+1;
     if (x[1]<=9)
     {
     x[1]="0"+x[1];
     }
     }
     if((x[0]>28) &&(x[1]=="02"))
     {
     x[0]="01";
     x[1]="03"; 
    
     }
    
     data_set= new Date(Date.UTC(2010,10,02,0,0,0));
     time1=Date.parse(data_set);
     data_set3= new Date(Date.UTC(2010,05,29,0,0,0));
     time3=Date.parse(data_set3);
    
    
     data2_result= new Date(Date.UTC(x[2],x[1],x[0],0,0,0));
     time2= Date.parse(data2_result);
     
     if(time2>time1)
     {alert("Periodo sbagliato A");}
     if(time2<time3)
     {alert("Periodo sbagliato B");}
    dove:
    f.dal.value = 29/09/2010
    f.notti.value = 7

    Mi da Periodo sbagliato B ma non è corretto!
    Perchè time2 dovrebbe essere 06/10/2010 e time3 29/05/2010 quindi time2 superiore a time3 e non dovrebbe dare l'alert "Periodo sbagliato B".

    C'è qualcosa che non va... provi a dare un occhiata?

  9. #9

  10. #10
    hoi rivisto il calcolo e la somma di data+notti non è corretta.
    Sopratutto quando si cambia di mese non viene calcolato bene... come posso modificare?

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.