Mostrar fecha y hora Cómo hacerlo bien
Nos encontramos con las fechas y el tiempo ... bueno, todos los días. Cuando se trata de la Web, puede detectarlas en sus aplicaciones móviles, en los correos electrónicos, en sus aplicaciones de mensajería y en muchos otros lugares. Sin embargo, a pesar de ver la fecha y la hora todos los días y en todas partes, Todavía tenemos que adoptar un formato universal para ello..
Por ejemplo, si escribo el 5/05/2015, nunca puede estar seguro de que ese "10" sea el mes o la fecha a menos que le diga de dónde soy. A veces el formato cambia, otras veces el idioma..
Es importante que, como desarrolladores web, prestemos atención a la fecha y la hora que tratamos en nuestros proyectos, para que podamos atender a diferentes habitantes geográficos Sin conflicto alguno. En este post vamos a estar discutiendo. Qué evitar y qué abrazar. Cuando se trata de mostrar fecha y hora.
Globalización
Digamos que no queremos convertir y mostrar diferentes formatos de fecha y hora a diferentes espectadores de todo el mundo, ¿qué podemos hacer? Escogemos un formato global y nos atenemos a él. Aquí es donde entran en juego algunas normas. Antes de llegar a eso, debo informar que el W3C recomienda que usemos el formato de fecha ISO 8601 con la zona horaria UTC.
ISO 8601
ISO 8601 describe una forma aceptada internacionalmente para representar fechas y horas usando números.
Y el formato para la fecha completa es; YYYY-MM-DD
, por ejemplo: 2015-07-28
YYYY = año de 4 dígitos
MM = mes de 2 dígitos (01 = enero, etc.)
DD = día de 2 dígitos (01 a 31)
Para completar la fecha y hora;YYYY-MM-DDThh: mm: ss.s
, por ejemplo: 2015-07-28T21: 15: 18.45
T = separar fecha y hora según ISO 8601
mm = minuto de 2 dígitos (00 a 59)
ss = 2 dígitos segundo (00 a 59)
s = Fracción decimal de un segundo, 1 o más dígitos
Tenga en cuenta que como no se ha mencionado ninguna zona horaria en el ejemplo anterior, se debe suponer que la hora está en la zona horaria local. Si ha decidido usar la zona horaria UTC, simplemente agregue Z al valor para denotar UTC
Por ejemplo: 2015-07-28T21: 15: 18.45Z
Pero si desea mostrar la hora local, puede agregar un desplazamiento de zona horaria Para UTC al valor en los formatos. +hh: mm
o -hh: mm
según sea necesario.
Por ejemplo: Asumamos 2015-07-28T21: 15: 18.45
está en la zona horaria EST (Hora estándar del este) que se retrasa 5 horas detrás de la zona horaria UTC.
Para representarlo con desplazamiento UTC escribimos. 2015-07-28T21: 15: 18.45-05: 00
que es equivalente a la hora UTC 2015-07-29T02: 15: 18.45Z
.
Otra vez Z se adjunta para representar que la fecha y la hora mostradas están en hora UTC.
UTC vs. GMT
Ambos son iguales pero diferentes. A estas alturas, probablemente te hayas encontrado con GMT al menos una vez; al configurar la fecha y hora en su teléfono móvil o computadora. Es la zona horaria más popular reconocida en todo el mundo ya que existe desde hace más tiempo que UTC.
Si bien algunos pueden decir que ambos son iguales pero no lo son, UTC es un sucesor de GMT y es mantenido por la Unión Internacional de Telecomunicaciones. Se recomienda referirse al tiempo basado en UTC y no GMT.
Usa el nombre de los meses
La norma ISO solo usaba números en la representación de la fecha para evitar conflictos de idioma. Pero, si los contenidos de su aplicación web van a estar en inglés, entonces debería considerar escribir meses en inglés en lugar de números..
En lugar de 2015-07-28
, 28 de julio de 2015
Es más fácil de entender por muchos, y menos confuso..
Localización
Hay ocasiones en las que queremos ser muy específicos con nuestros servicios y nos gustaría representar la fecha y la hora en las zonas horarias e idiomas locales. Hay muchas bibliotecas y API disponibles para que los desarrolladores web utilicen y muestren las fechas y horas según la región de acceso..
Puede obtener la configuración regional predeterminada del navegador, ya sea interpretando el Aceptar-lenguaje
encabezado de solicitud o a través de la navigator.language o navigator.browserLanguage
Objeto JavaScript, pero el mejor método es Deje que el usuario elija una configuración regional en su aplicación Ya que las formas anteriores no son muy fiables..
Una vez que tenga la configuración regional, puede formatear la fecha y la hora de acuerdo con ella, por ejemplo, usando la API de internacionalización, puedes formatear una fecha usando toLocaleDateString
en JavaScript, por ejemplo, myDate.toLocaleDateString ('ko-KR')
devolverá una fecha formateada en el formato utilizado en Corea por nativos de habla coreana.
Horario de verano (DST)
En ciertos países, el horario de verano se realiza al adelantar los relojes una hora en verano para aprovechar la luz solar adicional disponible. Tenga en cuenta el horario de verano para mantenerse al día con los horarios locales en sus servicios.
Año sin dos dígitos
Al personalizar la fecha y la hora para la localización, no utilice el formato de dos dígitos para el año en ningún momento. Ya estamos en el siglo XXI. Usando años como 64
, 99
será problemático en el futuro. Si ya tiene un sistema anual de dos dígitos, considere cambiarlo.
Año bisiesto y otros calendarios
Terminemos este post con algunas cosas varias para recordar al tratar con fechas. Si no está utilizando ninguna biblioteca o API para las fechas y desea tratar con ellos por su cuenta (que es no no obstante, se recomienda), no se olvide de mostrar el 29 de febrero en la entrada para los años bisiestos..
Además, vale la pena señalar que la El calendario gregoriano no es la única forma de calendario disponible y utilizada por todo el mundo. Hay pocos calendarios regionales que siguen los lugareños, especialmente cuando se trata de festividades.
Referencias
- Unión Internacional de Telecomunicaciones: estudio sobre el estado del tiempo universal coordinado (UTC) en el UIT-R
- ISO: ISO 8601 - Formato de fecha y hora
- Wikipedia: Tiempo Universal Coordinado
- Wikipedia: Horario de verano
- Wikipedia: Hora media de Greenwich
- Nota del W3C: Formatos de fecha y hora
- Consejos del W3C: usar formato de fecha internacional (ISO)