J'ai cherché SO et j'ai trouvé des solutions à cela, mais ils n'utilisent pas la date-fns ou ne fonctionnent tout simplement pas, car ils calculent des jours et je me concentre uniquement sur les heures le même jour. J'essaie de calculer la différence entre deux dates, ou plus précisément, entre les heures d'une même journée, de façon à ce que je puisse savoir quand quelqu'un a effectué un pointage et calculé le nombre d'heures travaillées pour ce jour.Calculer la différence entre les heures
J'utilise ce jour-SNF
Si je cours console.log(this.myForm.value.startTime)
je reçois 14:00
. Si je cours console.log(this.myForm.value.endTime)
je reçois 16:00
.
Voici ma fonction pour calculer les heures.
updateHours() {
var end = dateFns.format(new Date(this.myForm.value.endTime, 'HH:mm'));
var start = dateFns.format(new Date(this.myForm.value.startTime, 'HH:mm'));
var result = dateFns.differenceInMinutes(
new Date(end),
new Date(start)
)
console.log(result);
}
La valeur de result
est toujours NaN
Qu'est-ce que je fais mal?
fonctionne très bien jusqu'à ce que j'obtienne la valeur de ma forme 'this.myForm.value.startTime', puis il retourne' NaN'. J'ai même essayé 'this.myForm.value.startTime comme chaîne' sans chance. – timgavin
@timgavin Pourquoi ne pas faire 'this.myForm.value.startTime = this.myForm.value.startTime | "00:00" ', de sorte que les valeurs de la falsification soient remplacées par la valeur par défaut! –
Cela l'a réparé! Merci :) – timgavin