isODBCDate(str)
Last updated July 24, 2012
Version: 1 | Requires: CF9 | Library: CFMLLib
	Description: 
	The function checks if a string is an ODBC formatted date, time, or timestamp; returns a boolean.
Checks for validity of the time and date, between the year 1000 and 3999.
	Return Values: 
	True if the string is a correctly-formatted ODBC date string, otherwise false
Example:
<cfoutput><pre>
    <cfset s = "{d '2012-02-28'}">
    isODBCDate("#s#") = #isODBCDate(s)#<br />
    <cfset s = "{d '2012-02-31'}">
    isODBCDate("#s#") = #isODBCDate(s)#<br />
    <cfset s = "{d '2012-02-31'}">
    isODBCDate("#s#") = #isODBCDate(s)#<br />
    <cfset s = "{d '2012-19-39'}">
    isODBCDate("#s#") = #isODBCDate(s)#<br />
</pre></cfoutput>
Parameters:
| Name | Description | Required | 
|---|---|---|
| str | The string to validate | Yes | 
Full UDF Source:
<!---
 Checks if a string is an ODBC formatted date, time, or timestamp
 version 0.1 by Paul Klinkenberg
 version 1.0 by Adam Cameron - adding date validation so it will fail invalid dates such as Feb 31.
 
 @param str      The string to validate (Required)
 @return True if the string is a correctly-formatted ODBC date string, otherwise false 
 @author Paul Klinkenberg (pauL@ongevraagdadvies.nl) 
 @version 1, July 24, 2012 
--->
<cffunction name="isODBCDate" access="public" returntype="boolean" output="false">
    <cfargument name="str" required="yes" type="string">
    <cfscript>
        // test the format
        if (!(len(str) gt 10 and refindNoCase("^\{(d|t|ts) \'([1-3][0-9]{3}\-[0-1][0-9]\-[0-3][0-9] ?)?([0-2][0-9]:[0-5][0-9]:[0-5][0-9])?\'\}$", str))){
            return false;
        }
        // test that it's actually a valid date (ie: not 31 Feb, etc)
        try {
            parseDateTime(str);
            return true;
        }
        catch (any e){
            return false;
        }
    </cfscript>
</cffunction>
Search CFLib.org
Latest Additions
									
									Raymond Camden added 
									QueryDeleteRows 
									November 04, 2017
								
								
									
									Leigh added 
									nullPad 
									May 11, 2016
								
								
									
									Raymond Camden added 
									stripHTML 
									May 10, 2016
								
								
									
									Kevin Cotton added 
									date2ExcelDate 
									May 05, 2016
								
								
									
									Raymond Camden added 
									CapFirst 
									April 25, 2016