Calculer la durée entre deux dates reprises dans le code javascript
J'ai besoin de calculer la durée entre deux datetimes en JavaScript. J'ai essayé ce code:
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} today = mm+'/'+dd+'/'+yyyy; //Current Date
console.log("current date"+today);
var valuestart ="8:00 AM";
var valuestop = "4:00 PM";//$("select[name='timestop']").val();
//create date format
var timeStart = new Date("01/01/2007 " + valuestart).getHours();
var timeEnd = new Date("01/01/2007 " + valuestop).getHours();
var hourDiff = timeEnd - timeStart;
console.log("duration"+hourDiff);
À partir de cela, je suis en mesure d'obtenir Courant de la Date et de la durée. Mais lorsque je remplace la date "01/01/2007" avec la variable "aujourd'hui", j'obtiens le résultat que NaN. Merci de me guider dans où je me trompe. Merci à l'avance.
êtes-vous sûr
Nous montrer le code qui ne fonctionne pas. Droit maintenant "aujourd'hui" est un objet Date
Son correct dans le code ci-dessus.Mais quand j'ai changer que dans le var timeStart=new Date(""+jour+""+valuestart+"").getHours(); et semblable à timeEnd, je reçois problème
timeStart
& timeEnd
sont les dates de validité?Nous montrer le code qui ne fonctionne pas. Droit maintenant "aujourd'hui" est un objet Date
Son correct dans le code ci-dessus.Mais quand j'ai changer que dans le var timeStart=new Date(""+jour+""+valuestart+"").getHours(); et semblable à timeEnd, je reçois problème
OriginalL'auteur user2247744 | 2014-02-04
Vous devez vous connecter pour publier un commentaire.
Essayez ceci :
j'ai modifié ma réponse, essayez le code
Teisseire Grâce.Son travail maintenant
OriginalL'auteur Jérôme Teisseire
Vous devez travailler sur l'époque millisecondes.
L'idée est de transformer tout le époque millis représentation, effectuez votre les calculs, puis revenir à un autre format si nécessaire.
Il existe de nombreux articles sur le sujet:
OriginalL'auteur Christophe Roussy
aujourd'hui est de type Date, alors que la "01/01/2007" est une chaîne de caractères. En essayant de concaténer un objet Date avec "8:00 AM" ne fonctionnera pas. Vous devrez tourner à aujourd'hui, variable dans une chaîne ou d'utiliser aujourd'hui.setHours(8)
Si vous avez jQuery, il sera facile. $.datepicker.formatDate ("mm/dd/yyyy", aujourd'hui);
Si vous n'avez pas de jQuery, vous aurez probablement à utiliser les méthodes de l'objet Date, de construire la chaîne: (d'aujourd'hui.getMonth() + 1) + '/' + aujourd'hui.getDate() + '/' + aujourd'hui.getFullYear(). Quelque chose comme ça.
Non, je n'ai pas penser à utiliser datepicker.Je vais avoir le temps de serveur
OriginalL'auteur KJ Price