truncar redondear redondea quitar más mas hacia ejercicios decimales decenas decena cercanas cercana centena arriba javascript

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);