Stack Overflow em Português Asked by user8811593 on January 27, 2021
Estou com duas datas e preciso fazer um delta dessas datas para adicionar nas seguintes. Veja abaixo:
data1 = 2020-08-14T10:02
data2 = 2020-08-14T10:07
O código abaixo traz a diferença dessas datas:
var a = moment('2020-08-14T10:02');
var b = moment('2020-08-14T10:07');
console.log(b.diff(a, 'minutes'))
console.log(b.diff(a, 'hours'))
console.log(b.diff(a, 'days'))
console.log(b.diff(a, 'weeks'))
//5
//0
//0
//0
Agora eu quero que a data3 seja "2020-08-14T10:07" e adicionar os 5 minutos de diferença na data4, podem me ajudar?
Como o objeto Moment
implementa o método valueOf
para retornar o tempo em milissegundos, você pode apenas subtrair os objetos para capturar a diferença.
Depois use o método add
para adicionar a diferença na sua data. Porém o método add
não gera um novo objeto, ele modifica o objeto que invoca o método, se você quer gerar um objeto Moment
separado, clone o objeto anterior com o método clone
antes de adicionar a diferênça:
var a = moment('2020-08-14T10:02');
var b = moment('2020-08-14T10:07');
var diff = b - a;
var c = b.clone().add(diff, 'millisecond');
var d = c.clone().add(diff); // informar que a diferença é em milissegundos é opcional
// isso também é possível graças ao método valueOf,
// mas se você gerar uma nova data a partir dos milissegundos,
// você irá perder o fuso horário dessa data
var e = moment(d + diff);
console.log('a:', a);
console.log('b:', b);
console.log('c:', c);
console.log('d:', d);
console.log('e:', e);
<script src="https://momentjs.com/downloads/moment.min.js"></script>
Answered by user140828 on January 27, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP