Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
Manipular la hora interna de la fecha JS

Estoy tratando de sincronizar la hora de mi aplicación cliente con la hora de mi servidor (importa porque la aplicación no tiene servidor y funciona sin conexión). En el inicio de la aplicación, calculo la diferencia horaria y luego anulo el método Date.now() para agregar la diferencia al original ahora. Por ejemplo, suponga este código:

 Date.__serverDifference = calculateServerDifference(); Date.__now = Date.now; Date.now = () => Date.__now() + Date.__serverDifference;

y funciona bien Pero el problema es sobre otras funcionalidades de Fecha. Por ejemplo, si uso new Date() , devolverá la hora original y no le importa el método anulado ahora.
Como dice la documentación de MDN:

Los objetos de fecha de JavaScript representan un momento único en el tiempo en un formato independiente de la plataforma. Los objetos de fecha contienen un número que representa milisegundos desde el 1 de enero de 1970 UTC.

¿Hay alguna forma de anular la clase de fecha js para devolver todos los tiempos actuales de acuerdo con este nuevo cálculo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El mejor enfoque sería crear métodos auxiliares que incluyan el desplazamiento de todas las funciones para las que las funciones integradas no devuelven el valor deseado. Your Date.__now es un comienzo, pero también podrías tener:

 const offset = calculateServerDifference(); const newDateIncludingOffset = (...args) => { const date = new Date(...args); date.setMilliseconds(date.getMilliseconds() + offset); return date; };

Y luego reemplace todas las instancias de new Date(...args) con newDateIncludingOffset(...args) . Si ya tiene muchas referencias a la new Date , muerda la bala y cámbielas adecuadamente.

Si bien puede cambiar los métodos en el prototipo, no es una buena idea : usar sus propias funciones y métodos sin cambiar los elementos integrados es un enfoque mucho mejor.

También puede reemplazar window.Date por completo con algo nuevo, con sus propios métodos, lo que le permite cambiar el constructor de Fecha para tener en cuenta el desplazamiento que necesita, pero nuevamente, esa no es una gran idea y puede conducir a un código frágil y problemas de incompatibilidad.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda