Visualizzazione dei risultati da 1 a 9 su 9

Discussione: confronto date

  1. #1

    confronto date

    ho un problema strano

    ho 3 date e devo verificare se la data di consegna è compresa tra due date

    le date sono formattate come aaaa/mm/gg

    questo è parte del codice:
    codice:
    data_cons=year(miaDatacons)&"/"&right("00"&month(miaDatacons),2)&"/"&right("00"&day(miaDatacons),2)
    
    
    data_da=year(miaDatada)&"/"&right("00"&month(miaDatada),2)&"/"&right("00"&day(miaDatada),2)
    data_a=year(miaDataa)&"/"&right("00"&month(miaDataa),2)&"/"&right("00"&day(miaDataa),2)
    %>
    
      <%if data_cons >= data_da AND data_cons <= data_a then ...%>
    la condizione if però funziona se data da e data a sono dello stesso anno

    esempio se la "data a" è 01/01/2006 e la "data da" 20/01/2006
    se ho come data consegna 05/01/2006 la condizione if mi funziona

    se però "data a" è 31/12/2005 la condizione if non funziona ....xchè?
    grazie
    Ci sedemmo dalla parte del torto visto che tutti gli altri posti erano occupati."
    [Bertolt Brecht]

  2. #2
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Utilizza questa funzione per formattare la data:

    codice:
    <%
    function convertDate(theDate)
    if isDate(theDate) then
    theYear = datePart("yyyy",theDate)
    theMonth = datePart("m",theDate)
    theDay = datePart("d",theDate)
    if theMonth < 10 then theMonth = "0" & theMonth
    if theDay < 10 then theDay = "0" & theDay
    convertDate = theYear & "/" & theMonth & "/" & theDay
    end if
    end function
    
    myDate = date()
    response.write convertDate(myDate)
    %>

  3. #3
    pensi dipenda da questo?


    la tua data accetta giorni e mesi ad una cifra....ma il mio form li fornisce e sono verificati come gg/mm/aaaa
    che poi io formatto come aaaa/mm/gg
    Ci sedemmo dalla parte del torto visto che tutti gli altri posti erano occupati."
    [Bertolt Brecht]

  4. #4
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da asva

    la tua data accetta giorni e mesi ad una cifra
    Non è vero.

  5. #5
    Il problema sta nel fatto che tu non stai confrontando date ma delle stringhe...ovviamente la stringa 31/12/2005 risulta più grande di 20/01/2005.

    O usi la funzione di fraude o devi convertire la stringa della data nel formato AAAAMMGG anzichè GG/MM/AAAA, allora i confronti tra stringhe saranno corretti.

    Ciao

  6. #6
    ed utilizzare il controllo DateDiff ?
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  7. #7
    up up! ho lo stesso problema!

  8. #8
    codice:
    giorni1 = DateDiff("d", data_inizio, tua_data)
    giorni2 = DateDiff("d", tua_data, data_fine)
    
    if ( giorni1 > 0 AND giorni2 > 0 ) then
    	OK
    end if
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  9. #9
    provo a fare le operazioni fra le varie date in formato AAAAMMGG, ma ho sempre lo stesso errore...:

    Microsoft VBScript runtime error '800a000d'

    Type mismatch: '[string: "20060510"]'


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.