Como posso traduzir esse pseudo-código em js em funcionamento [não se preocupe com a origem da data de término, exceto que é uma data 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());
javascript
brendan
fonte
fonte
.getTime()
. Exemplo:var myStartDate = new Date(myEndDateTime.getTime() + durationInMinutes * MS_PER_MINUTE);
var myStartDate = somedate.addMinutes(-durationInMuntes);
Presumo somedate é um objeto Datevar d = new Date("2017-10-29 01:50:00"), e = new Date(d.getTime() + 20 * 60000);
você esperariae
ser02:10:00
, certo? Não.01:10:00
. DST diz oi. E depois há segundos bissextos ...Você também pode usar obter e definir minutos para alcançá-lo:
fonte
setMinutes()
é inteligente o suficiente para lidar com minutos negativos corretamente. Então, se data de início foi 03:05, e você quer subtrair 30 minutos, você estaria passando-25
a setMinutes (), que é inteligente o suficiente para saber que3:-25
é2:35
. (ou seja, não lançar uma exceção.).setMinutes(...)
força manipulaint
valores. Se você definir1.5 minutes
um,Date
ele somente definirá1 minute
e manterá os segundos como antes.Tudo é apenas carrapatos, não há necessidade de memorizar métodos ...
ou
atualizar
Depois de trabalhar com o momentjs, devo dizer que esta é uma biblioteca incrível que você deve conferir. É verdade que os ticks funcionam em muitos casos, tornando seu código muito pequeno e você deve tentar torná-lo o menor possível para o que você precisa fazer. Mas para qualquer coisa complicada, use momentjs.
fonte
O moment.js tem alguns métodos de conveniência muito bons para manipular objetos de data
O método .subtract permite subtrair uma certa quantidade de unidades de tempo de uma data, fornecendo a quantidade e uma string de unidade de tempo.
fonte
Isto é o que eu encontrei:
Fontes:
http://www.javascriptcookbook.com/article/Perform-date-manipulations-based-on-adding-or-subtracting-time/
https://stackoverflow.com/a/12798270/1873386
fonte
você pode converter o registro de data e hora do Unix em horário convencional usando
new Date()
.fonte
Tente como abaixo:
fonte
Isto é o que eu fiz: veja no Codepen
fonte
new Date()
, mas tem uma data especificada e perguntou apenas sobre a subtração de minutos. Além disso, seu código não funciona - ele retorna o carimbo de data e hora do UNIX em vez do objeto Date.Estender a classe Date com esta função
Assim, você pode adicionar ou subtrair vários minutos, segundos, horas, dias ... a qualquer data.
fonte