"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué IE Date Constructor difiere del manejo de fechas de Chrome y Firefox?

¿Por qué IE Date Constructor difiere del manejo de fechas de Chrome y Firefox?

Publicado el 2024-11-08
Navegar:348

Why Does IE Date Constructor Differ from Chrome and Firefox Date Handling?

Problema del constructor de fechas de IE: NaN versus funcionalidad en otros navegadores

Dentro de un proyecto que involucraba el desarrollo de calendarios de JavaScript, surgieron discrepancias en el manejo de fechas entre Internet Explorer (IE) y navegadores como Firefox y Chrome. Específicamente, las funciones de fecha de IE generaban valores NaN (no es un número), mientras funcionaban correctamente en los otros navegadores.

Tras la investigación, quedó claro que la causa principal estaba relacionada con el formato de fecha utilizado. La función en cuestión, buildWeek(), pretendía generar fechas de encabezado para una semana calendario basada en una fecha de lunes proporcionada en el formato 'm, d, Y', por ejemplo, "02, 01, 2010". Sin embargo, en IE, este formato no se reconocía correctamente, lo que generaba el problema de NaN.

Para resolver esta discrepancia, se adoptó un enfoque diferente. En lugar de depender del formato dado, la cadena de fecha se dividió en sus componentes (fecha y hora) usando split(" "). Posteriormente, el componente de fecha se dividió en sus partes constituyentes (año, mes, día) usando split("-"), y el componente de tiempo se dividió en sus partes (horas, minutos, segundos) usando split(:") .

Luego se construyó una instancia de Fecha utilizando estos valores analizados. Este método demostró ser compatible con todos los navegadores, asegurando un manejo consistente de la fecha en IE, Firefox y Chrome.

var dateStr = "2011-08-03 09:15:11"; //returned from mysql timestamp/datetime field
var a = dateStr.split(" ");
var d = a[0].split("-");
var t = a[1].split(":");
var date = new Date(d[0], (d[1] - 1), d[2], t[0], t[1], t[2]);

Al adoptar esto Enfoque, los errores de NaN en IE se eliminaron con éxito, logrando un manejo de fechas consistente en diferentes navegadores.

Declaración de liberación Este artículo se reimprime en: 1729402457 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3