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:
- Changed how negative date differences are calculated: this function calculates negative date differences correctly; its output may be different from that in earlier releases.
- Changed the w and ww attributes; they determine the number of full weeks between the two dates.
|
|
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>
.
|