Working with Dates

One thing that’s worth giving special mention to in this chapter is the way in which cfchart handles date values when they’re on the y-axis. If you remember from Example 17-1, you can use labelformat="Date" to tell cfchart to format the values along the value axis as dates. If you try the following code, however, you’ll probably notice something strange:

<cfchart format="Flash" labelformat="Date">
  <cfchartseries type="Scatter" serieslabel="New Years Eve Party Hosts">
    <cfchartdata item="Zack" value="12/31/1972">
    <cfchartdata item="Becky" value="12/31/1996">
    <cfchartdata item="Joe" value="12/31/1984">
    <cfchartdata item="Lynda" value="12/31/2002">    
  </cfchartseries>
</cfchart>

If you look at the dates on the vertical axis, you should notice that they are all 12/31/69. Additionally, if you move your mouse over any of the data points, they are also all 12/31/69. The issue here is that cfchart does not accept formatted dates (such as mm/dd/yyyy) as data-point values. If you have dates you want to plot on the y-axis of a chart, you’ll have to reformat them for cfchart. cfchart expects dates passed as values be formatted in epoch seconds, adjusted for your UTC (Coordinated Universal Time) offset. What’s more, the resulting number must be multiplied by 1000 (presumably to account for milliseconds?). So, how do you do all of this? The simple solution is to create a user-defined function to handle the conversion for you. This allows you to call the function repeatedly, without ...

Get Programming ColdFusion MX, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.