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:
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()
unaDate
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.