Skip navigation
Currently Being Moderated

Difference between 2 timestamps

Mar 12, 2012 1:22 PM

I'm not sure why my results are giving me 0. I'm trying to do a simple date difference. Here's my code:

 

<cfset nowtime = now()>

 

<cfif DateDiff("s", getpost.dtstamp, nowtime) lt 60>

  <cfset thedate = DateDiff("s", getpost.dtstamp, nowtime)  & " seconds ago">

 

  <cfelseif DateDiff("m", getpost.dtstamp, nowtime) lt 60>

  <cfset thedate = DateDiff("m", getpost.dtstamp, nowtime)  & " minutes ago">

 

   <cfelseif DateDiff("h", getpost.dtstamp, nowtime) lte 23>

  <cfset thedate = DateDiff("h", getpost.dtstamp, nowtime)  & " hours ago">

 

 

  <cfelseif DateDiff("d", v.dtstamp, nowtime) lte 7>

  <cfset thedate = DateDiff("d", getpost.dtstamp, nowtime) & " days ago">

 

    <cfelse>

  <cfset thedate = dateformat(getpost.dtstamp, "mmmm dd")>

</cfif>

 

 

When I displayed the original variables it shows:

 

getpost.dtstamp = 2012-03-10 17:33:25.0 I don't know where this .0 is coming from because the database doesn't show that.

now = {ts '2012-03-12 16:16:02'}

 

I'm getting 0.

 
Replies
  • Currently Being Moderated
    Mar 12, 2012 1:40 PM   in reply to lovewebdev

    Zero what: seconds ago, minutes ago, ....?  What is the data type of the dtstamp column?

     

    <cfelseif DateDiff("d", v.dtstamp, nowtime) lte 7>

    Btw, are you intentionally using a different variable there?

     
    |
    Mark as:
  • Currently Being Moderated
    Mar 12, 2012 2:07 PM   in reply to lovewebdev

    That was just an fyi in case it was not a copy/paste error ;-)

     

    What about the first two questions?

     
    |
    Mark as:
  • Currently Being Moderated
    Mar 12, 2012 2:40 PM   in reply to lovewebdev

    When in doubt, look at your data.  What does this give you?

     

    <cfdump var = "nowtime is #nowtime# dtstamp is #getpost.dtstamp# datediff seconds is  #DateDiff("s", getpost.dtstamp, nowtime)#">

     
    |
    Mark as:
  • Currently Being Moderated
    Mar 12, 2012 8:58 PM   in reply to lovewebdev

    Okay, that explains it. You have got the wrong DateDiff unit.  "m" stands for months, not minutes.

     
    |
    Mark as:
  • Currently Being Moderated
    Mar 12, 2012 11:37 PM   in reply to lovewebdev

    I don't if the error is being caused by that random .0. I don't even know where it's coming from.

    I checked the value of the timestamp column and there is no .0 in there but this is what's dumping out.

    getpost.dtstamp = 2012-03-10 17:33:25.0

     

     

    That is just a user friendly representation of the timestamp value as a string. Internally, it is a big unreadable number xxxxxxxxx. But since you are not performing a string comparison, its not relevant.

     

    Message was edited by: -==cfSearching==-

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points