DateDiff

Description

Determines the integer number of units by which date1 is less than date2.

Returns

A number of units, of type datepart.

Category

Date and time functions

Function syntax

DateDiff("datepart", "date1", "date2")

See also

DateAdd, DatePart, CreateTimeSpan

History

ColdFusion MX:

Parameters

Parameter Description

datepart

String specifying the units in which to count; for example yyyy requests a date difference in whole years.

  • yyyy: Years
  • q: Quarters
  • m: Months
  • y: Days of year (same as d)
  • d: Days
  • w: Weekdays (same as ww)
  • ww: Weeks
  • h: Hours
  • n: Minutes
  • s: Seconds

date1

Date/time object, in the range 100 AD-9999 AD.

date2

Date/time object, in the range 100 AD-9999 AD.

Usage

The DateDiff function determines the number of complete datepart units between the two dates; for example, if the datepart parameter is "m" and the dates differ by 55 days, the function returns 1.

Enclose string constant dates in quotation marks. If the text contains only numbers (such 1932), and is not surrounded by quotation marks, ColdFusion interprets it as a date/time object, resulting in an incorrect value.

Example

<cfif IsDefined("form.value")>
   <cfset value = form.value>
</cfif>
<cfif IsDefined("form.type")>
   <cfset type = form.type>
</cfif>

<cfif IsDefined("form.date1") and IsDefined("form.date2")>

   <cfif IsDate(form.date1) and IsDate(form.date2)>
   
      <p>This example uses DateDiff to determine the difference
      in    
      <cfswitch expression = "#form.type#">
         <cfcase value="yyyy">years</cfcase>
         <cfcase value="q">quarters</cfcase>
         <cfcase value="m">months</cfcase>
         <cfcase value="y">days</cfcase>   
         <cfcase value="d">days</cfcase>   
         <cfcase value="w">weekdays</cfcase>   
         <cfcase value="ww">weeks</cfcase>   
         <cfcase value="h">hours</cfcase>   
         <cfcase value="n">minutes</cfcase>   
         <cfcase value="s">seconds</cfcase>      
         <cfdefaultcase>years</cfdefaultcase>
      </cfswitch>
          dateparts between date1 and date2.
      
      <cfif DateCompare("#form.date1#","#form.date2#") is not 0>
      <p>The difference is <cfoutput>#Abs(DateDiff(type, form.date2, form.date1))#</cfoutput>
      <cfswitch expression = "#form.type#">
         <cfcase value="yyyy">years</cfcase>
         <cfcase value="q">quarters</cfcase>
         <cfcase value="m">months</cfcase>
         <cfcase value="y">days</cfcase>   
         <cfcase value="d">days</cfcase>   
         <cfcase value="w">weekdays</cfcase>   
         <cfcase value="ww">weeks</cfcase>   
         <cfcase value="h">hours</cfcase>   
         <cfcase value="n">minutes</cfcase>   
         <cfcase value="s">seconds</cfcase>      
         <cfdefaultcase>years</cfdefaultcase>
      </cfswitch>.
      <cfelse>
      <p>The two dates are equal!  Try changing one of the values ...
      </cfif>
   
   <cfelse>
   <p>Please enter two valid date/time values, formatted like this:
   <cfoutput>#DateFormat(Now())#</cfoutput>   
   </cfif>   

</cfif>
<form action="index.cfm" method="post">

<pre>
Date 1
<input type="Text" name="date1" value="<CFOUTPUT>#DateFormat(Now())#</CFOUTPUT>">
Date 2
<input type="Text" name="date2" value="<CFOUTPUT>#DateFormat(Now())#</CFOUTPUT>">
What kind of unit to show difference?
   <select name="type">
      <option value="yyyy" selected>years
      <option value="q">quarters
      <option value="m">months
      <option value="y">days of year
      <option value="d">days
      <option value="w">weekdays
      <option value="ww">weeks
      <option value="h">hours
      <option value="n">minutes
      <option value="s">seconds
   </select>
</pre>

<input type="Submit" name=""><input type="RESET">
</form>

.

View comments in LiveDocs