¿Cómo puedo calcular ayer como fecha en JavaScript?
javascript
date
Omega
fuente
fuente
getDate
devuelve el día del mes (por ejemplo: 1 - 31), pero en realidadsetDate(0)
establece la fecha para el último día del mes anterior. ¿Funciona esto en todos los navegadores?No muy eficiente, pero como línea:
Lo anterior crea tres
Date
objetos que son innecesariamente derrochadores. Esto se puede reducir a una sola instanciación con:O, si lo prefieres:
O, si prefiere ES6 con función de flecha:
fuente
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
Prueba esto
fuente
Sorprendentemente, no hay un punto de respuesta para la solución de navegador cruzado más fácil
Para encontrar exactamente la misma hora de ayer:
Es decir, si desea liberarse de la dependencia, de lo contrario, le recomendaría usar http://momentjs.com
fuente
Para generalizar la pregunta y hacer otros cálculos de diferencias, use:
esto crea un nuevo objeto de fecha basado en el valor de "ahora" como un entero que representa la época de Unix en milisegundos restando un día.
Hace dos días:
Hace una hora:
fuente
new Date(Date.parse(new Date()) - 86400000)
. Aunque me gusta Date.now (), tal vez intente eso en su lugar. Ahorrará una fecha extra.Utilizo moment library, es muy flexible y fácil de usar.
En tu caso:
fuente
subtract
lugar deadd
fuente
fuente
fuente
Esto producirá ayer a las 00:00 con minutos de precisión
fuente
hará el truco
fuente
d.setHours(-1,0,0,0)
. Esto devolverá la fecha de ayer, pero puede que no sea la hora que desee (23:00:00)Pruébalo, funciona para mí:
Esto me devolvió un objeto de fecha para ayer
fuente
var yesterday = new Date(); yesterday.setDate(today.GetDate() - 1)
para que pueda usar hoy y ayerAquí hay una línea que se usa para obtener la fecha de ayer en formato AAAA-MM-DD en el texto y manejar el desplazamiento de la zona horaria.
Obviamente se puede cambiar a la fecha de regreso, x días atrás en el tiempo. Para incluir el tiempo, etc.
fuente
Si desea obtener la fecha de ayer y formatear esa fecha en un formato legible para humanos, considere crear un
DateHelper
objeto personalizado que se vea así:(ver también este violín )
fuente
Puede usar momentjs, es muy útil, puede lograr muchas cosas con esta biblioteca.
Obtenga la fecha de ayer con el tiempo actual
moment().subtract(1, 'days').toString()
Obtenga la fecha de ayer con un inicio de la fecha
moment().subtract(1, 'days').startOf('day').toString()
fuente
resolver el problema de la fecha límite (2020, 01, 01) -> 2019, 12, 31
fuente
"Date.now () - 86400000" no funcionará en el día de finalización del horario de verano (que tiene 25 horas ese día)
Otra opción es usar Closure:
fuente