devo sapere quanto tempo intercorre tra due date in giorni ore minuti e secondi
esempio solo dei minuti
datediff("n" , now() , rsestrai("scadenza")) = 0 )
ovviamente devo avere il risultato tipo "mancano 4g 6h 20s"
![]()
devo sapere quanto tempo intercorre tra due date in giorni ore minuti e secondi
esempio solo dei minuti
datediff("n" , now() , rsestrai("scadenza")) = 0 )
ovviamente devo avere il risultato tipo "mancano 4g 6h 20s"
![]()
dimenticavo le date sono anche con l'ora tipo now
Calcola la differenza in secondi, poi da questi ricava i giorni, le ore ecc.
infatti ma per esempio se io ho 62196 secodi come lo trasformo ?
Dividi per 60 ed hai i minuti, il resto sono i secondi rimanenti e così via...
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
si ma se faccio la divisione io ottengo 1032 e qualcosa, ma non posso scrivere rimangono 1032 minuti , come faccio a presentare un tempo corretto tipo 4g 12h 56m 3s per esempio l'equivalente di 62126 (anche senon è quello)
Mi sono fatto una funzioncina giusto 2 settimane fa...
Due minuti che la cerco.....
Eccola qua:
function scomponi_ore(tempo)
ore = Int((tempo)/(3600))
minuti = Int((tempo-(ore*3600))/60)
secondi = tempo-((minuti*60)+(ore*3600))
If len(ore) < 2 Then
ore = "0"&ore
End If
If len(minuti) < 2 Then
minuti = "0"&minuti
End If
If len(secondi) < 2 Then
secondi = "0"&secondi
End If
scomponi_ore = (ore)&":"&(minuti)&":"&(secondi)
End function
Per usarla devi richiamarla tramite il numero dei secondi:
<%=scomponi_ore(numero_secondi)%>
Così te la formatta anche lo zero davanti alla cifra singola!
Aggiungi un pezzetto prima e ti aggiunge anche i giorni
![]()
codice:<% sub writeDateDiff(data) Dim bmancano,secondi,minuti,ore,giorni secondi=datediff("s",now(),data) bmancano=(secondi>0) if not bmancano then secondi=-secondi end if giorni = fix(secondi/86400) secondi = secondi Mod 86400 ore = fix(secondi/3600) secondi = secondi Mod 3600 minuti = fix(secondi/60) secondi = secondi Mod 60 if bmancano then response.write "mancano " else response.write "sono trascorsi " end if response.write giorni&"g "&ore&"h "&minuti&"m "&secondi&"s" end sub call writeDateDiff("2005-09-01 18:01") %>
grazie ragazzi , nel primo esempio non sapevo come mettere i giorni pero per l'ora andava, il secondo mi dava alla variabile secondi errore di overflow. io ho risolto cosi è mi funziona
codice:<% if (datediff("s" , now() , rsestrai("scadenza")) <=0 ) and (datediff("h" , now() , rsestrai("scadenza")) <=0) and (datediff("n" , now() , rsestrai("scadenza")) <=0 ) and (datediff("s" , now() , rsestrai("scadenza")) <=0) then response.write ("scad") ' oggetto scaduto else giorni= fix(datediff("s" , now() , rsestrai("scadenza"))/86400) ore1= (datediff("s" , now() , rsestrai("scadenza"))/86400)-giorni ore2 = (ore1 * 86400)/3600 ore = fix(ore2) min1= (ore2-ore)*3600 min2=min1/60 minuti=fix(min2) secondi = fix((min2-minuti)*60) response.write giorni&"g "&ore&"h "&minuti&"m "&secondi&"s" end if %>
In effetti poteva dare errore per differenze elevate, l'ho corretta, quella che hai fatto mi sembra che faccia troppe operazioni, cmq fai come credi
codice:sub writeDateDiff(data) Dim bmancano,secondi,minuti,ore,giorni secondi=datediff("s",now(),data) bmancano=(secondi>0) if not bmancano then ' scommentabile: ' response.write "scad" ' exit sub secondi=-secondi end if giorni = fix(secondi/86400) secondi = secondi-(giorni*86400) ore = fix(secondi/3600) secondi = secondi Mod 3600 minuti = fix(secondi/60) secondi = secondi Mod 60 if bmancano then response.write "mancano " else response.write "sono trascorsi " end if response.write giorni&"g "&ore&"h "&minuti&"m "&secondi&"s" end sub call writeDateDiff("2500-01-01 10:01")