Frage

Ich bin zur Zeit die Menge der Zeit, die Menschen sind auf unserer Website zu verfolgen.

Jeder Benutzer hat eine Menge Zeit Satz für sie, ob es 0.10.00 (10 mintues) oder 100: 00: 00 (100 Stunden)

.

Das Problem kommt, wenn ich mit dieser Codezeile:

<cfset seconds_left = datediff("s",variables.time_used,form.site_time)>

Wenn einer dieser Variablen ist über 24 Stunden (24:00:00) wird es einen Fehler aus:

40:00:00 ist ein ungültiges Datum oder Uhrzeit String.

Alle Vorschläge, wie dieses Problem zu beheben wäre toll, danke!

War es hilfreich?

Lösung

Option 1 : gültige Datum Zeitwert verfolgen. Bei der Anmeldung (oder ersten Besuch) Satz <cfset session.start_time = now()>. die Dauer zu bestimmen, die Berechnung ist als solche:

<cfset duration = dateDiff("s", session.start_time, now()))>

Option 2 : Wendezeit Werte, die Sie gerade arbeiten in Sekunden und tun einfache Subtraktion.

<cffunction name="ts2secs" output="false" access="public" returntype="numeric" hint="Take a time string and return number of seconds">
    <cfargument name="ts" type="string" required="true" hint="formated as h:m:s"/>
    <cfset var local = structNew()/>
    <cfset var pieces = listToArray(arguments.ts, ":")>
    <cfset var hours = pieces[1]>
    <cfset var minutes = pieces[2]>
    <cfset var seconds = pieces[3]>
    <cfreturn (hours * 60 * 60) + (minutes * 60) + seconds>
</cffunction>

<cfset duration = ts2secs(variables.time_used) - ts2secs(form.site_time)>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top