Eu tenho duas datas de entrada tiradas do controle Seletor de datas. Selecionei a data de início 2/2/2012 e a data de término 7/7/2012. Eu escrevi o seguinte código para isso.
Eu deveria obter resultado como 6, mas estou recebendo 5.
function SetDays(invoker) {
var start = $find('<%=StartWebDatePicker.ClientID%>').get_value();
var end = $find('<%=EndWebDatePicker.ClientID%>').get_value();
var oneDay=1000 * 60 * 60 * 24;
var difference_ms = Math.abs(end.getTime() - start.getTime())
var diffValue = Math.round(difference_ms / oneDay);
}
Alguém pode me dizer como posso obter a diferença exata?
javascript
Vaibhav Deshmukh
fonte
fonte
Respostas:
http://momentjs.com/ ou https://date-fns.org/
Dos documentos do momento:
ou para incluir o início:
É melhor do que mexer com timestamps e fusos horários manualmente.
Dependendo do seu caso de uso específico, você pode
a/b.startOf('day')
e / oua/b.endOf('day')
para forçar o diff a ser inclusivo ou exclusivo nos "fins" (conforme sugerido por @kotpal nos comentários).true
para obter um diff de ponto flutuante que você podeMath.floor
, então ,Math.ceil
ouMath.round
conforme necessário.'seconds'
em vez de'days'
e depois dividindo por24*60*60
.fonte
Math.abs(a.diff(b, 'days'))+1
startOf
muda o momento. Se você não quer isso, façaa.clone().startOf('day').diff(b.clone().startOf('day'))
.Se você estiver usando o moment.js, poderá fazê-lo facilmente.
Se você deseja encontrar a diferença entre uma determinada data e a data atual em número de dias (ignorando a hora), certifique-se de remover a hora do objeto de momento da data atual, conforme abaixo
Para encontrar a diferença entre uma determinada data e a data atual em número de dias
fonte
current.diff(given, 'days')
para que ele fique arredondado.1
está perdidoExperimentar:
fonte
Tente usar o moment.js (é muito fácil calcular operações de data em javascript)
firstDate.diff (secondDate, 'dias', false); // true | false para o valor da fração
O resultado fornecerá o número de dias em número inteiro.
fonte
Além disso, você pode usar este código: moment ("yourDateHere", "YYYY-MM-DD"). FromNow (). Isso calculará a diferença entre hoje e a data fornecida.
fonte
Isso funciona para mim:
fonte
Eu criei uma função reutilizável rápida no ES6 usando o Moment.js.
fonte
MVC eu tenho dois texto de entrada 1: número do dia 2: selecionador de data e hora
javascipt
para calcular o número a partir da data de uso
para calcular o número de dias entre duas datas, use
não esqueça de adicionar http://momentjs.com/
fonte