ColdFusion DateTimeFormat() Utility Function

Posted May 22, 2007 at 7:31 AM by Ben Nadel

Tags: ColdFusion

I love ColdFusion's DateFormat() and TimeFormat() functions; they are hugely useful. And, most of the time, I use them independently of each other. But, often enough, I use DateFormat() followed by TimeFormat(). Wouldn't it be cool if ColdFusion had a DateTimeFormat() function that would accept both a date and a time mask? I think it would be, and here's what it might look like:

  • <cffunction
  • name="DateTimeFormat"
  • access="public"
  • returntype="string"
  • output="false"
  • hint="Formats the given date with both a date and time format mask.">
  •  
  • <!--- Define arguments. --->
  • <cfargument
  • name="Date"
  • type="date"
  • required="true"
  • hint="The date/time stamp that we are formatting."
  • />
  •  
  • <cfargument
  • name="DateMask"
  • type="string"
  • required="false"
  • default="dd-mmm-yyyy"
  • hint="The mask used for the DateFormat() method call."
  • />
  •  
  • <cfargument
  • name="TimeMask"
  • type="string"
  • required="false"
  • default="h:mm TT"
  • hint="The mask used for the TimeFormat() method call."
  • />
  •  
  • <cfargument
  • name="Delimiter"
  • type="string"
  • required="false"
  • default=" at "
  • hint="This is the string that goes between the two formatted parts (date and time)."
  • />
  •  
  •  
  • <!---
  • Return the date/time format by concatenating the date
  • and time formatting separated by the given delimiter.
  • --->
  • <cfreturn (
  • DateFormat(
  • ARGUMENTS.Date,
  • ARGUMENTS.DateMask
  • ) &
  •  
  • ARGUMENTS.Delimiter &
  •  
  • TimeFormat(
  • ARGUMENTS.Date,
  • ARGUMENTS.TimeMask
  • )
  • ) />
  • </cffunction>

Using the above ColdFusion user defined function, you could easily format date/time values:

  • <!---
  • DateTimeFormat called with all possible
  • defaulted arguments.
  • --->
  • #DateTimeFormat(
  • Now()
  • )#
  •  
  •  
  • <!---
  • DateTimeFormat called with explicit date
  • and time masks and default delimiter.
  • --->
  • #DateTimeFormat(
  • Now(),
  • "mmm d, yyyy",
  • "h:mm TT"
  • )#
  •  
  •  
  • <!---
  • DateTimeFormat called with explicit date and
  • time masks as well as an explicit delimiter.
  • --->
  • #DateTimeFormat(
  • Now(),
  • "mmm d, yyyy",
  • "h:mm TT",
  • " at the time of "
  • )#

The above code would give us the following output:

22-May-2007 at 7:24 AM
May 22, 2007 at 7:24 AM
May 22, 2007 at the time of 7:24 AM

I'm sure this has been done before, but I just really hope that one day Adobe adds it to the ColdFusion built-in function list.



Reader Comments

May 22, 2007 at 7:47 AM // reply »
11 Comments

Yup, Ray did it back in 2001 and has it on his cflib.org site http://www.cflib.org/udf.cfm?ID=134

cflib.org hasn't got much press lately and it's easy to forget the wealth of udf's on the site.


May 22, 2007 at 8:01 AM // reply »
11,246 Comments

@Chris,

It's funny, right after I posted this, I did a quick Google search to see if this was out there already (as I assumed it was) and there it was, CFLib as the second search result.

2001... I guess that means I'm only 6 years behind the Jedi :) The force is weak with me.


May 22, 2007 at 9:34 AM // reply »
319 Comments

Heh, people _do_ forget about CFLib, so it is no big deal. ;) I need to get off my ass and release that new version that I've been talking about since 2004. ;)


May 22, 2007 at 9:45 AM // reply »
95 Comments

Ben, good job anyway. If nothing else you made me aware of the existing function at cflib. Thanks!


May 22, 2007 at 9:47 AM // reply »
11,246 Comments

@Ray,

Some of the best meals I have ever eaten were cooking over many many hours... that doesn't exactly translate to web sites, other than to say, good things are worth the wait.


May 22, 2007 at 11:58 AM // reply »
56 Comments

@Ray,

Are you ever going to just integrate cflib into riaforge?


May 22, 2007 at 12:11 PM // reply »
319 Comments

No plans. I really look at RIAForge as more for 'projects', not single CFCs/UDFs/tags. Now that is NOT official RIAForge policy. Shoot, even I have a single CFC up there I believe. But in GENERAL those are my thoughts. (Have to treat carefully here. I admin both sites, but Adobe is the official owner of RIAForge. Etc etc etc.)


Del
Jul 19, 2009 at 5:39 PM // reply »
1 Comments

Thanks a lot Ben this was really helpful.

Changed the Defaults to mm/dd/yyyy HH:mm:ss

It worked like a charm.


Jul 19, 2009 at 5:40 PM // reply »
11,246 Comments

@Del,

Glad you are finding this useful.


Jul 12, 2010 at 7:53 PM // reply »
1 Comments

Thanks for the function to format date and time together. However I found a similar method if you just want to display the date and time.
By doing this:
#dateformat(created_date, "dd-MMM-yyyy")# #timeformat(created_date, "h:mm:ss tt")#

Hope this helps out.


Jul 18, 2010 at 12:18 PM // reply »
11,246 Comments

@Deepesh,

This function was actually meant to replace having to use two functions separately. But, of course, you should use which ever you prefer.


Nov 28, 2012 at 3:22 PM // reply »
2 Comments

Hey I have a quick question for you regarding coldfusion date/time... pretty much I'm working on an employee portal and I want the timestamps for their posts to a bulletin board to be formatted to their timezone. I have their timezones saved according to their useraccounts (database) and now I'm trying to do the logic to do the math to display the correct time of the post in the database based on where in the world they're located. I keep getting the times an hour off. When the date/time stamp is saved to the database in a new post, I use the dateformat and timeformat. Are those two functions pulling the coldfusion server time or the computer's local clock time? If it's the server time, how do I figure out what the server time (or even timezone of the server) actually is using CF code? Thanks Ben! - Justin


Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 23, 2013 at 9:52 PM
Preventing Links In Standalone iPhone Applications From Opening In Mobile Safari
@Muhmmadibn Did you figure out a solution to launching PDFs? I am running into the same issues myself. There is no way to close the PDF or go back once you launch it. Thanks in advance! ... read »
May 23, 2013 at 6:06 PM
The Girl Who Broke My Heart, And Made Me A Better Person
Good day,ladies and gentle men, my name is Dr AMADI the great spell caster in Africa, i have help so many people for different kind of problems,who say there is no solution to problems on earth, that ... read »
May 23, 2013 at 4:26 PM
ColdFusion QueryAppend( qOne, qTwo )
@Heather, Glad people are still getting value out of this! ... read »
May 23, 2013 at 3:49 PM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@WebManWalking, I meant the code at the bottom (not the video). I did try to experiment with an intermediary variable, like: value = users.id[ i ]; arrayContains( userIDs, value ); ... but t ... read »
May 23, 2013 at 11:06 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Ben, Are you talking about As Number: YES As String: YES As Java: YES? If so, that's with 3 different ways of referencing the constant 1, not users.id[1]. Query object references(*) are what seem ... read »
May 23, 2013 at 9:55 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Dan, According to the CF Admin, I'm running Java "1.6.0_45". As far as the DB column, in the database it's an INT. I'll see if I can dig into what CF sees it as. @WebManWalking, But h ... read »
May 23, 2013 at 9:49 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Ben, I think the problem is that we're used to loose typing in ColdFusion, like JavaScript. If a value is a number but it's needed in an expression to be a string, noooo problem. I've encountered ... read »
May 23, 2013 at 9:47 AM
ColdFusion QueryAppend( qOne, qTwo )
You rock! Thank you, thank you, thank you!!! ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools