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

    Ora "americana" su MySql

    Salve a tutti (quelli che ancor anon sono in vacanza),
    ho la necessità di inserire in un campo di una tabella MySql, settato come date/time, ovviamente la data e l'ora.
    E che ci sarà mai di così difficile direte voi? Giusto giusto, solo che se recupero la data con Date mi restituisce 4:43:43 AM che ovviamente MySql rifiuta di "storare" nel campo settato come 0000-00-00 00:00:00 (date/time per l'appunto).
    Potrei inserire l'ora come hh:mm:ss manualmente (senza ricorrere alla funzione Date), ma così facendo perdo il riferimento di am e pm (che purtroppo è fondamentale per gli americani che non usano l'orario a 24 ore).

    Quindi vi chiedo, avete idee o soluzioni in merito?

    Thanks

  2. #2

  3. #3
    Ma sei sicuro che il AM e PM non sia solo un output, mentre nel database venga salvato in formato standarg aaaa-mm-gg hh:mm:ss ?


  4. #4
    usa questa funzione passandogli la data

    <%

    Function sDataStr()

    sDataStr= _
    right("19" & cStr(Year(Date)),4) & "." & _
    right("00" & cStr(Month(Date)),2) & "." & _
    right("00" & cStr(Day(Date)),2) & "." & _
    right("00" & cStr(Hour(Time)),2) & "." & _
    right("00" & cStr(Minute(Time)),2) & "." & _
    right("00" & cStr(Second(Time)),2)

    end function

    'ovviamente poi nel db metterai sDataStr()

    %>

    spero che ti vada bene
    ...ancora credi a internet? :maLOL:

  5. #5
    correggo errore

    non gli devi passare la data ma semplicemente mettere nel db sDataStr() ok?
    ...ancora credi a internet? :maLOL:

  6. #6
    niente di complesso direi

    stora la data come hh:mm:ss e poi quando la estrai dal db prima di stamparla la passi dentro a una funzione

    mai cercare le soluzioni NEL db

    codice:
    <%
    
    public function formatAmericanTime(byVal argDate)
    
    	if hour(argDate) > 12 then
    		argDate = dateadd("h",-12,argDate)
    		formatAmericanTime = hour(argDate) & ":" & minute(argDate) & ":" & second(argDate) & " PM"
    	else
    		formatAmericanTime = hour(argDate) & ":" & minute(argDate) & ":" & second(argDate) & " AM"
    	end if
    
    end function
    
    dim myDate
    mydate = now
    
    response.write formatAmericanTime(myDate)
    
    %>
    -------------------------------------------------------------------------------

    già che ci sono propongo anche un'ottima funzione che ho fatto per la data completa (dato che molti hanno problemi)

    per inserire la data nel db

    codice:
    function formatDBDate(argDate,argDB)
    
    	dim tmpdate,tmpdateoutput
    	tmpdate = argDate
    	
    	select case argDB
    		case "mdb"
    		tmpdateoutput = "#yyyy-mm-dd h:m:s#"
    		case "mysql"
    		tmpdateoutput = "'yyyy-mm-dd h:m:s'"
    	end select
    	
    	tmpdateoutput = replace(tmpdateoutput,"dd",right("0" & day(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"mm",right("0" & month(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"yyyy",year(tmpdate))
    	tmpdateoutput = replace(tmpdateoutput,"yy",right(year(tmpdate),2))
    	
    	tmpdateoutput = replace(tmpdateoutput,"h",right("0" & hour(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"m",right("0" & minute(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"s",right("0" & second(tmpdate),2))
    	
    	formatDBDate = tmpdateoutput
    	
    end function
    es:
    SQL = "INSERT INTO miatabella (campodata) VALUES " & _
    "(" & formatDBDate("mysql",now) & ")"
    SQL = "INSERT INTO miatabella (campodata) VALUES " & _
    "(" & formatDBDate("mdb",now) & ")"

    per estrarla e stamparla
    codice:
    function formatGMTDate(argDate, argGMT, argFormat)
    
    	dim tmpdate,tmpdateoutput
    	
    	tmpdate = getGMTDate(argDate,argGMT)
    	
    	tmpdateoutput = argFormat
    	tmpdateoutput = replace(tmpdateoutput,"dd",right("0" & day(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"mm",right("0" & month(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"yyyy",year(tmpdate))
    	tmpdateoutput = replace(tmpdateoutput,"yy",right(year(tmpdate),2))
    	
    	tmpdateoutput = replace(tmpdateoutput,"h",right("0" & hour(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"m",right("0" & minute(tmpdate),2))
    	tmpdateoutput = replace(tmpdateoutput,"s",right("0" & second(tmpdate),2))
    	
    	formatGMTDate = tmpdateoutput
    
    end function
    es:
    response.write formatGMTDate(now, 0, "h:m:s dd/mm/yyyy")
    san imente saluta

    * http://simonecingano.it *

  7. #7
    okkey... avevo letto troppo di fretta :P

    se il dato ti viene dato come AM e devi metterlo sul db
    hai provato con LCID = 1040 invece che a fare una funzione...

    codice:
    'in testa alla pagina
    session.lcid = 1040
    oppure nel caso peggiore

    inserisci manualmente hour(date) & ":" & minute(date) & ":" & second(date)
    perchè così penso ti venga data in ogni caso l'ora "assoluta" (all'europea)
    ma non essendone certo ti consiglierei di fare un test prima

    ---

    e per estrarre la funzione che ti ho messo nel post precedente
    san imente saluta

    * http://simonecingano.it *

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 © 2026 vBulletin Solutions, Inc. All rights reserved.