Determines the integer number of units by which date1 is less than date2.
A number of units, of type datepart.
DateDiff("datepart
", "date1
", "date2
")
DateAdd, DatePart, CreateTimeSpan
ColdFusion MX:
Parameter |
Description |
---|---|
datepart |
String that specifies the units in which to count; for example yyyy requests a date difference in whole years.
|
date1 |
Date/time object, in the range 100 AD-9999 AD. |
date2 |
Date/time object, in the range 100 AD-9999 AD. |
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.
<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>