XForms/Formatting a date

Motivation
XML stores dates in the format YYYY-MM-DD such as 2007-08-30. Unfortunately this is usually not the way users want to view their dates.

This example XForms program uses CSS to hide an input date and an XPath expression to get the date to display in the MM/DD/YYYY format typically used in the US.

Screen Image




Link to XForm Example
Link to Date Format External Example

Discussion
The CSS style sheet hides the input field. The input has the class="hidden" attribute.

The output is formatted using the following XPath expression: concat(  substring(/MyModel/MyDate,6,2),   '/',   substring(/MyModel/MyDate,9,2),   '/',   substring(/MyModel/MyDate,1,4) )

Concat is the XPath concatenation operator. The input is in the format: "YYYY-MM-DD". We just need to reach in and get the correct characters out.
 * 1) The first substring goes to the 6th character and pulls out the two month (MM) characters.
 * 2) The second substring starts at the 9th character and gets two day (DD) characters.
 * 3) The last substring returns characters 1-4 which are the four year characters (YYYY).

You do not have to display all four letters in the year. By changing the last substring from:

substring(/MyModel/MyDate,1,4) to be substring(/MyModel/MyDate,3,4)

You will only get the last two digits of the year.