quitar - redondear decimales javascript
Cómo redondear a la hora más cercana usando JavaScript Date Object (5)
Las otras respuestas ignoran los segundos y milisegundos componentes de la fecha. Haría algo como esto:
function roundToHour(date) {
p = 60 * 60 * 1000; // milliseconds in an hour
return new Date(Math.round(date.getTime() / p ) * p);
}
var date = new Date(2011,1,1,4,55); // 4:55
roundToHour(date); // 5:00
date = new Date(2011,1,1,4,25); // 4:25
roundToHour(date); // 4:00
Estoy trabajando en un proyecto que requiere un tiempo en el futuro para configurarlo utilizando el objeto Fecha.
Por ejemplo:
futureTime = new Date();
futureTime.setHours(futureTime.getHours()+2);
Mis preguntas son; una vez que se establece la fecha futura, ¿cómo puedo redondear a la hora completa más cercana y luego establecer la var de futureTime con ella?
Por ejemplo:
Given 8:55 => var futureTime = 9:00
Given 16:23 => var futureTime = 16:00
¡Cualquier ayuda sería apreciada!
O puedes mezclar los dos para un tamaño óptimo. http://jsfiddle.net/HkEZ7/
function roundMinutes(date) {
return date.getMinutes() >= 30 ? date.getHours() + 1 : date.getHours();
}
Otra solución, que no es tan elegante como IAbstractDownvoteFactory''s
var d = new Date();
if(d.getMinutes() >= 30) {
d.setHours(d.getHours() + 1);
}
d.setMinutes(0);
Redondea los minutos y luego borra los minutos:
var date = new Date(2011,1,1,4,55); // 4:55
roundMinutes(date); // 5:00
function roundMinutes(date) {
date.setHours(date.getHours() + Math.round(date.getMinutes()/60));
date.setMinutes(0);
return date;
}
Una forma un poco más simple:
var d = new Date();
d.setMinutes (d.getMinutes() + 30);
d.setMinutes (0);