DateCompare |
Description
Performs a full date/time comparison of two dates.
Returns -1, if date1 is less than date2 0, if date1 is equal to date2 1, if date1 is greater than date2
Category
Date and time functions
Function syntax
    DateCompare("date1", "date2" [, "datePart"])
See also
CreateDateTime, DatePart
Parameters
Parameter | Description
date1 | Date/time object, in the range 100 AD-9999 AD.
date2 | Date/time object, in the range 100 AD-9999 AD.
datePart | Optional. String. Precision of the comparison.
| s Precise to the second (default)
| n Precise to the minute
| h Precise to the hour
| d Precise to the day
| m Precise to the month
| yyyy Precise to the year
Usage
When passing a date/time object as a string, you must enclose it in quotation marks. Otherwise, it is interpreted as a numeric representation of a date/time object.
Example
    <h3>DateCompare Example</h3>
    <p>The DateCompare function compares two date/time values.
    <cfif IsDefined("FORM.date1")>
       <cfif IsDate(FORM.date1) and IsDate(FORM.date2)>
          <cfset comparison = DateCompare(FORM.date1, FORM.date2, FORM.precision)>

    <!--- switch on the variable to give various responses --->
          <cfswitch expression = #comparison#>
             <cfcase value = "-1">
                <h3><cfoutput>#DateFormat(FORM.date1)#
                #TimeFormat(FORM.date1)#</cfoutput> (Date 1) is
                earlier than <cfoutput>#DateFormat(FORM.date2)#
                #TimeFormat(FORM.date2)#</cfoutput> (Date 2)</h3>
                <I>The dates are not equal</I>
             </cfcase>
             <cfcase value = "0">
                <h3><cfoutput>#DateFormat(FORM.date1)#
                #TimeFormat(FORM.date1)#</cfoutput> (Date 1) is equal
                to <cfoutput>#DateFormat(FORM.date2)#
                #TimeFormat(FORM.date2)#</cfoutput> (Date 2)</h3>
                <I>The dates are equal!</I>
             </cfcase>
             <cfcase value = "1">
                <h3><cfoutput>#DateFormat(FORM.date1)#
                #TimeFormat(FORM.date1)#</cfoutput> (Date 1) is later
                than <cfoutput>#DateFormat(FORM.date2)#
                #TimeFormat(FORM.date2)#</cfoutput> (Date 2)</h3>
                <I>The dates are not equal</I>
             </cfcase>
             <CFDEFAULTCASE>
                <h3>This is the default case</h3>
             </CFDEFAULTCASE>
          </cfswitch>
       <cfelse>
          <h3>Enter two valid date values</h3>
       </cfif>
    </cfif>

    <form action = "datecompare.cfm">
    <hr size = "2" color = "#0000A0">
    <p>Date 1
    <br><input type = "Text" name = "date1"
          value = "<cfoutput>#DateFormat(Now())# #TimeFormat(Now())#
    </cfoutput>">
    <p>Date 2
    <br><input type = "Text" name = "date2"
          value = "<cfoutput>#DateFormat(Now())# #TimeFormat(Now())#
    </cfoutput>">
    <p>Specify precision to the:
    <br><select name = "precision">
             <option value = "s">
                Second
             </option>
             <option value = "n">
                Minute
             </option>
             <option value = "h">
                Hour
             </option>
             <option value = "d">
                Day
             </option>
             <option value = "m">
                Month
             </option>
             <option value = "yyyy">
                Year
             </option>
       </select>
    <p><input type = "Submit" value = "Compare these dates" name = "">
    <input type = "reset">
    </form>

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

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

datePart |
Optional. String. Precision of the comparison. s Precise to the second (default) n Precise to the minute h Precise to the hour d Precise to the day m Precise to the month yyyy Precise to the year