XSLTForms/Cambiar el formato de los campos de fecha
Introduccion
editarEn ocasiones deseamos mostrar la fecha o la fecha y hora, de una manera o formato diferente a la que se nos muestra por defecto. En muchos casos este formato es definido por nosotros mismos o los requerimientos que se tengan. Existen otros casos como cuando se trabaja con configuraciones regionales. Por cualquiera que sea la necesidad se mostrara como cambiar el formato en el que se muestra la fecha y hora.
Configuracion
editarDentro de la carpeta xsltforms la cual contiene los recursos necesarios para el uso de los controles de xforms, se encuentran los archivos de configuración. Buscamos uno llamado config.xsl, este es el archivo principal, el cual tiene una configuración básica de esta manera:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="config">
<options>
<nocss><!-- When existent, no css-conversion hapens. -->
</options>
<properties> <!-- Accessible at run time from within model('xf-model-config')/instance('xf-instance-config'). -->
<language>navigator</language> <!-- navigator or default -->
<calendar.day0>Mon</calendar.day0>
<calendar.day1>Tue</calendar.day1>
<calendar.day2>Wed</calendar.day2>
<calendar.day3>Thu</calendar.day3>
<calendar.day4>Fri</calendar.day4>
<calendar.day5>Sat</calendar.day5>
<calendar.day6>Sun</calendar.day6>
<calendar.initDay>6</calendar.initDay>
<calendar.month0>January</calendar.month0>
<calendar.month1>February</calendar.month1>
<calendar.month2>March</calendar.month2>
<calendar.month3>April</calendar.month3>
<calendar.month4>May</calendar.month4>
<calendar.month5>June</calendar.month5>
<calendar.month6>July</calendar.month6>
<calendar.month7>August</calendar.month7>
<calendar.month8>September</calendar.month8>
<calendar.month9>October</calendar.month9>
<calendar.month10>November</calendar.month10>
<calendar.month11>December</calendar.month11>
<format.date>MM/dd/yyyy</format.date>
<format.datetime>MM/dd/yyyy hh:mm:ss</format.datetime>
<format.decimal>.</format.decimal>
<status>... Loading ...</status>
</properties>
<extensions>
<!-- JS script code to add.
- When none of the following child elements exist, any elements here are copied
- just after xsltforms.js and before init-scripts.
-->
<beforeInit/> <!-- Added in a separate <script> element, after xsltforms.js and before init-scipts. -->
<onBeginInit/> <!-- Added within init-code <script> at the begining of initImpl() function, before any definitions. -->
<onEndInit/> <!-- Added within init-code <script> at the end of initImpl() function, after xforms.init() invocation. -->
<afterInit/> <!-- Added in a separate <script> element, after init-scripts. -->
</extensions>
</xsl:template>
</xsl:stylesheet>
Como se puede observar en al final de las propiedades se encuentran denotados los formatos con los cuales se mostrara la fecha:
- Solo la fecha (<format.date>MM/dd/yyyy</format.date>)
- Fecha y Hora (<format.datetime>MM/dd/yyyy hh:mm:ss</format.datetime>)
Si deseamos que nuestra fecha aparezca en un formato diferente al por defecto, solo debemos cambiar el valor que se encuentra dentro de las etiquetas antes dichas, por el cual queremos.
Por ejemplo:
Cambiar solo la fecha
<format.date>MM/dd/yyyy</format.date> por <format.date>dd-MM-yyyy</format.date>
y asi para la fecha y hora.
Si se esta trabajando con configuraciones regionales solo debemos cambiar los formatos en el archivo config_XX.xsl, donde las XX representan la abreviación del idioma, como por ejemplo config_es.xsl para español.