una sumar restar obtener moment meses horas hora funciones fechas fecha entre con comparar calcular actual javascript

sumar - ¿Cómo restar minutos de una fecha en javascript?



restar horas con moment js (8)

¿Cómo puedo traducir este pseudo código en js de trabajo [no se preocupe de dónde viene la fecha de finalización, excepto que es una fecha de javascript válida].

var myEndDateTime = somedate; //somedate is a valid js date var durationInMinutes = 100; //this can be any number of minutes from 1-7200 (5 days) //this is the calculation I don''t know how to do var myStartDate = somedate - durationInMuntes; alert("The event will start on " + myStartDate.toDateString() + " at " + myStartDate.toTimeString());


Esto es lo que encontré:

//First, start with a particular time var date = new Date(); //Add two hours var dd = date.setHours(date.getHours() + 2); //Go back 3 days var dd = date.setDate(date.getDate() - 3); //One minute ago... var dd = date.setMinutes(date.getMinutes() - 1); //Display the date: var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var date = new Date(dd); var day = date.getDate(); var monthIndex = date.getMonth(); var year = date.getFullYear(); var displayDate = monthNames[monthIndex] + '' '' + day + '', '' + year; alert(''Date is now: '' + displayDate);

Fuentes:

http://www.javascriptcookbook.com/article/Perform-date-manipulations-based-on-adding-or-subtracting-time/

https://.com/a/12798270/1873386


Esto es lo que hice: ver en Codepen

var somedate = 1473888180593; var myStartDate; //var myStartDate = somedate - durationInMuntes; myStartDate = new Date(dateAfterSubtracted(''minutes'', 100)); alert("The event will start on " + myStartDate.toDateString() + " at " + myStartDate.toTimeString()); function dateAfterSubtracted(range, amount){ var now = new Date(); if(range === ''years''){ return now.setDate(now.getYear() - amount); } if(range === ''months''){ return now.setDate(now.getMonth() - amount); } if(range === ''days''){ return now.setDate(now.getDate() - amount); } if(range === ''hours''){ return now.setDate(now.getHours() - amount); } if(range === ''minutes''){ return now.setDate(now.getMinutes() - amount); } else { return null; } }


Extiende la clase Fecha con esta función

// Add (or substract if value is negative) the value, expresed in timeUnit // to the date and return the new date. Date.dateAdd = function(currentDate, value, timeUnit) { timeUnit = timeUnit.toLowerCase(); var multiplyBy = { w:604800000, d:86400000, h:3600000, m:60000, s:1000 }; var updatedDate = new Date(currentDate.getTime() + multiplyBy[timeUnit] * value); return updatedDate; };

Entonces puede agregar o restar una cantidad de minutos, segundos, horas, días ... a cualquier fecha.

add_10_minutes_to_current_date = Date.dateAdd( Date(), 10, "m"); subs_1_hour_to_a_date = Date.dateAdd( date_value, -1, "h");


También puede usar get y establecer minutos para lograrlo:

var endDate = somedate; var startdate = new Date(endDate); var durationInMinutes = 20; startdate.setMinutes(endDate.getMinutes() - durationInMinutes);


Una vez que sabes esto:

  • Puede crear una Date llamando al constructor con milisegundos desde el 1 de enero de 1970.
  • El valor de valueOf() una Date es la cantidad de milisegundos desde el 1 de enero de 1970
  • Hay 60,000 milisegundos en un minuto: -]

... no es tan difícil.

En el siguiente código, se crea una nueva Date restando el número apropiado de milisegundos de myEndDateTime :

var MS_PER_MINUTE = 60000; var myStartDate = new Date(myEndDateTime - durationInMinutes * MS_PER_MINUTE);


moment.js tiene algunos buenos métodos de conveniencia para manipular objetos de fecha

El método .subtract , le permite restar una cierta cantidad de unidades de tiempo de una fecha, proporcionando la cantidad y una secuencia de tiempo.

var now = new Date(); // Sun Jan 22 2017 17:12:18 GMT+0200 ... var olderDate = moment(now).subtract(3, ''minutes'').toDate(); // Sun Jan 22 2017 17:09:18 GMT+0200 ...


Todo es solo tics, no hay necesidad de memorizar métodos ...

var aMinuteAgo = new Date( Date.now() - 1000 * 60 );

o

var aMinuteLess = new Date( someDate.getTime() - 1000 * 60 );


var date=new Date(); //here I am using "-30" to subtract 30 minutes from the current time. var minute=date.setMinutes(date.getMinutes()-30); console.log(minute) //it will print the time and date according to the above condition in Unix-timestamp format.

puede convertir la marca de tiempo de Unix en hora convencional utilizando una new Date() .por ejemplo

var extract=new Date(minute) console.log(minute)//this will print the time in the readable format.