Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589

    inervallo completo tra date

    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"


  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    dimenticavo le date sono anche con l'ora tipo now

  3. #3
    Calcola la differenza in secondi, poi da questi ricava i giorni, le ore ecc.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    infatti ma per esempio se io ho 62196 secodi come lo trasformo ?

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Dividi per 60 ed hai i minuti, il resto sono i secondi rimanenti e così via...

    Roby

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    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)

  7. #7
    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


  8. #8
    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")
    
    %>

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    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
    %>

  10. #10
    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")

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.