Estoy usando MongoDB que tiene un campo de tiempo en milisegundos. Estoy tratando de obtener todos los registros del día anterior. Hasta ahora he buscado soluciones que muestren cómo obtener los registros de las 24 horas anteriores. Pero necesito registros del día anterior solamente. Por favor ayuda a escribir esta consulta. Entonces algo como esto
createdTime: { $lt: new Date().getTime(), $gt: new Date().getTime() - 1000 * 60 * 60 * 24, },Pero como expliqué, esto no es lo que quiero.
Puede obtener las marcas de tiempo de UNIX para el inicio y el final del día anterior de esta manera.
NOTA: comienza y termina en hora UTC
var start = new Date().setUTCHours(0,0,0,0)-1000 * 60 * 60 * 24; var end = new Date().setUTCHours(23,59,59,999)-1000 * 60 * 60 * 24; console.log(start) console.log(end) console.log(new Date(start).toUTCString()) console.log(new Date(end).toUTCString())var date = new Date(); date ; //# => today date var yesterdayDate = date.setDate(date.getDate() - 1); createdTime: { $lt: date, $gt: yesterdayDate, }Asumiríamos que "el día anterior" es un período de 24 horas que comienza al comienzo del día anterior a hoy. La forma más fácil de hacer esto es usar el tiempo basado en UTC y agregar un desplazamiento de zona horaria (si es necesario).
const timeZoneOffset = -5; createdTime: { $gt: new Date().setUTCHours(0,0,0)-1000 * 60 * 60 * (24 + timeZoneOffset), $lt: new Date().setUTCHours(23,59,59,999)-1000 * 60 * 60 * (24 + timeZoneOffset) },