Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    111

    Conversione data in inglese

    Salve a tutti

    ho un problema con le date in quanto Access prende la data in versione inglese come default.
    Io vorrei quindi creare una funzione che converta le date, che io inserisco in italiano, in inglese, altrimenti non funziona l'ORDER BY che gli ho dato, in quanto se gli scrivo 02/08/2005 per access è l'8 febbraio non il 2 agosto.

    Dato che non utilizzo sempre io il form di inserimento non posso inserirle direttamente all'inglese, quindi ho bisogno che chi inserisce la data la inserisca gg/mm/aaaa ma poi la funzione la converta in mm/gg/aaaa.

    Spero di essere stata chiara :rollo: .

    Grazie in anticipo
    Rossella

  2. #2
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    codice:
    FUNCTION dataInglese(dtData) 
       dataInglese = Year(dtData) &"/"& right("00"&month(dtData),2) &"/"& right("00"&day(dtData),2)
    END FUNCTION 
    
    TuaDataItaliana  = dataInglese(Request.Form("TuaDataItaliana"))
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  3. #3
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    uso questo per la conversione:
    codice:
    Function FormatDateTimeLCID (str, nNamedFormat, nLCID)
    dim strRet, nOldLCID
    strRet = str
    If (nLCID > -1) Then nOldLCID = Session.LCID
    On Error Resume Next
    If (nLCID > -1) Then Session.LCID = nLCID
    If ((nLCID < 0) Or (Session.LCID = nLCID)) Then strRet = FormatDateTime(str, nNamedFormat)
    If (nLCID > -1) Then Session.LCID = nOldLCID
    FormatDateTimeLCID = strRet
    End Function
    La funzione sopra non è altro che un ampliamento della funzione FormatDateTime con l'aggiunta dell LCID quindi
    dataItaliana = FormatDateTimeLCID(Date(),2,1040)
    dataInglese = FormataDateTimeLCID(Date(),2,1033)

    per il db ti conviene sempre inserirli o fare le query utilizzando la data nel formato YYYY/MM/GG

    questa è presa da weppos, nel tuo caso non ti serve l'ora
    codice:
    public function formatDateTimeDb(dtmDateValue, dtmTimeValue)
    
    formatDateTimeDb = Year(dtmDateValue) &_
    "/" & Month(dtmDateValue) &_
    "/" & Day(dtmDateValue) &_
    " " & dtmTimeValue
    
    end function
    [EDIT]
    si il right("00"&month(dtData),2) di Orcim è stilisticamente + corretto ma funzionalmente non cambia tanto
    [/EDIT]

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    111
    Ho provato il primo esempio di orcim ho scritto la funzione e poi nel recupero dati del form ho scritto così

    data_ordine=dataInglese(request.form("data_ordine" ))
    if dataInglese(request.form("data_ordine")) = "" then
    data_ordine = dataInglese(Now())
    end if

    settando a default Now() in caso di mancano inserimento del campo del form. Però mi dà questo errore

    Errore di run-time di Microsoft VBScript (0x800A000D)
    Tipo non corrispondente: '[string: ""]'
    nella riga del file (incluso) dove ho scritto la funzione cioè questa:

    dataInglese = Year(dtData) &"/"& right("00"&month(dtData),2) &"/"& right("00"&day(dtData),2)

    Ho sbagliato qualcosa?
    Rossella

  5. #5
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Stai cercando di trattare una data come stringa:

    data_ordine=cDate(dataInglese(request.form("data_o rdine")))

    Cos'hai scritto nell'include?
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    111
    adesso l'ho sostituita così


    data_ordine=cDate(dataInglese(request.form("data_o rdine")))
    if cDate(dataInglese(request.form("data_ordine"))) = "" then
    data_ordine = cDate(dataInglese(Now()))
    end if


    ho dei dubbi sull'ultima parte del Now() ma a parte questo l'errore dato è sempre lo stesso
    Rossella

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    111
    l'include contiene questa funzione


    FUNCTION dataInglese(dtData)
    dataInglese = Year(dtData) &"/"& right("00"&month(dtData),2) &"/"& right("00"&day(dtData),2)
    END FUNCTION


    quella che avevi scritto tu
    Rossella

  8. #8
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    codice:
    data_ordine=cDate(dataInglese(request.form("data_ordine")))
    if cDate(dataInglese(request.form("data_ordine"))) = "" then
    data_ordine = cDate(dataInglese(Now()))
    response.write data_ordine &"
     
    end if
    e posta cosa stampa.
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    111
    stampa questo


    0.00.00

    ho fatto una prova non inserendo nulla quindi ho c'è un errore nel campo di default che doveva dare la data odierna o c'è un errore da qualche altra parte
    Rossella

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    111
    anche inserendo una data stampa quello di prima
    Rossella

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.