DateCompare

Description

Performs a full date/time comparison of two dates.

Returns

  • -1, if date1 is earlier than date2

  • 0, if date1 is equal to date2

  • 1, if date1 is later than date2

Function syntax

DateCompare("date1", "date2" [, "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, 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" method="post"> 
<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>