<% ' Very kindly knocked up by Cam McVey ' http://mcvey.org/ ' Based on an original script by Natalie Downe ' http://blog.natbat.co.uk/archive/2003/Jun/14/time_since Function TimeSince(Original) Dim aChunks, aYear, aMonth, aWeek, aDay, aHour, aMinute Dim dictChunks, aKeys Dim Today, iSince Dim i, j Dim iSeconds, iSeconds2 Dim sName, sName2 Dim iCount, iCount2 Dim sPrint Dim Locale If Not IsDate(Original) Then TimeSince = "!!!ERROR!!!" Exit Function Else Original = CDate(Original) End If Set dictChunks = Server.CreateObject("Scripting.Dictionary") dictChunks.Add "year", 60 * 60 * 24 * 365 dictChunks.Add "month", 60 * 60 * 24 * 30 dictChunks.Add "week", 60 * 60 * 24 * 7 dictChunks.Add "day", 60 * 60 * 24 dictChunks.Add "hour", 60 * 60 dictChunks.Add "minute", 60 aKeys = dictChunks.Keys() ' set Locale to US datetime format (for example) ' http://www.drdev.net/LocaleIDs.asp varLocale = SetLocale(1033) Original = FormatDateTime(Original, 0) Today = Now() iSince = CLng(DateDiff("s", Original, Today)) j = dictChunks.Count For i = 0 To j - 1 iSeconds = CLng(dictChunks.Item(aKeys(i))) sName = aKeys(i) iCount = Int(iSince / iSeconds) If iCount <> 0 Then Exit For End If Next If iCount = 1 Then sPrint = sPrint & "1 " & sName Else sPrint = sPrint & iCount & " " & sName & "s" End If If i + 1 < j Then iSeconds2 = dictChunks.Item(aKeys(i + 1)) sName2 = aKeys(i + 1) iCount2 = Int((iSince - (iSeconds * iCount)) / iSeconds2) If iCount2 <> 0 Then If iCount2 = 1 Then sPrint = sPrint & ", 1 " & sName2 Else sPrint = sPrint & ", " & iCount2 & " " & sName2 & "s" End If End If End If Set dictChunks = Nothing Erase aKeys TimeSince = sPrint End Function %>