Adobe ColdFusion 8

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

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" 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>