Me he encontrado en un poco de complicación. Necesito encontrar la diferencia entre las marcas de tiempo de dos días en milisegundos sin predefinir ninguno de ellos. Todo lo que sé es que necesito que la marca de tiempo pequeña sea ahora, lo que supongo que puedo obtener usando Date.now() (corríjame si me equivoco). La otra marca de tiempo puede ser cualquier día de la semana y no tengo control sobre cuál elige el usuario.
Entonces quiero algo como esto:
var dif = The future thursday - nowSólo sé los días en palabras. No sé cómo cambiar eso a la marca de tiempo en milisegundos.
Puede obtener la siguiente instancia de un día particular de la semana a partir de otro día de la semana mediante la aritmética. Luego puede obtener la diferencia entre esa fecha y la medianoche al comienzo de un día específico, por ejemplo
// Get next instance of particular weekday. // ECMAScript day numbering, ie 0 = Sunday, 1 = Monday, etc. // If targetDay == currentDay, get next instance of day function getNextWeekday(targetDay, date = new Date()) { let d = new Date(date); // For targetDay, make Sunday 7 not 0 targetDay = targetDay || 7; d.setDate( d.getDate() + (((targetDay - d.getDay() + 7) % 7) || 7) ); return d; } // Get time difference in milliseconds between // 00:00 on the targetDay from 00:00 on supplied date. function getTimeDiff(targetDay, date = new Date()) { let d = getNextWeekday(targetDay, date); return d.setHours(0,0,0,0) - new Date(date).setHours(0,0,0,0); } // The following might return fractional days were the // calculation crosses a DST boundary // Get timeDiff to next Sunday let timeDiff = getTimeDiff(0); console.log(`${timeDiff} (${timeDiff/8.64e7} days)`);amigo, usa el momento para las cosas js de fecha/hora, te hará la vida mucho más fácil.
puedes encontrar en su documentación todo lo que buscas