7
votes

Calculer la différence entre la date et l'heure entrées?

J'ai deux champs de saisie pour entrer la date, qui est une jquery datePicker. En utilisant cela, je peux sélectionner des dates. Ils sont enregistrés et vérifient les dates.

De même, j'ai deux boîtes de sélection, à partir de laquelle je peux sélectionner l'heure. Ils enregistrent et vérifient le temps.

par exemple: xxx

Je veux le résultat: différence entre (01 / 05/2014 13:00) et (04/05/2014 18:00) Comme 3days 5 heures

violon < / p>

p>


6 commentaires

S'il vous plaît, publiez votre code ici


@hindlt j'ai créé un violon comprenant tout mon code: JSFIDDLE.net/U97JA/2


J'ai déjà remarqué ce lien dans votre code. Cependant je voudrais voir votre code ici


@hindlo j'ai mis mon script ici.


Pour commencer, votre date de fin n'est pas ramassée car vous avez utilisé l'identifiant #dou au lieu de #dout. Corrigez cela et il renvoie un résultat, mais il basse les dates sur des formats américains, il est donc faux.


Essayez de remplacer var diff = nouvelle date (fin - démarrage); avec var diff = fin.valueof - start.valueof;


3 Réponses :


1
votes

Fiddle Demo strong> kbd>

var end = new Date($('#dout').val());
//                         ^ missing t in id it's dout not dou


5 commentaires

Cela pourrait aider les demandeurs (et les futurs lecteurs) plus si vous incluez une explication de ce que vous avez fait et pourquoi il corrige le problème, au lieu de simplement dumping du code :)


Entre j'ai trouvé mon erreur. Mais le format de date me troublait. Mais vous l'avez effacé :-)


Quand j'ai sélectionné Checkin: 02/05/2014, Checkout: 02/05/2014, Time in: 13:00, Time Out: 12:00, ça donne la différence: 0 jour (s) 1 heure (s) !!! , Mais je pense que cela devrait être 0 jour (s) -1 heure (s)


@TUSHARGUMUTA: Lorsque vous essayez votre violon de la réponse, je sélectionne < Code> 01/05/2014 et 02/05/2014 - 13:00 et 12:00 I Obtenir 1 jour (s) 1 heure (s) s'il devrait être 0 jour (s) 23 heures (s) Je ne sais pas ce qui cause cela. Je suis en Irlande et sur le fuseau horaire GMT. C'est peut-être cette conversion de formatage de la date personnalisée. Pas sûr cependant. De toute façon, il n'est pas nécessaire que JQuery DatePicker a une manière native de retourner l'objet de date déjà et l'objet de date a une manière native de définition des heures.


@TUSHARGUGUTA: J'ai trouvé pourquoi, la valeur de l'option TEMPS pour 12:00 est définie sur 02:00 dans le code, il n'utilise donc que 2 < / code> au lieu de 12 . Maintenant, il fonctionne lors de la sélection de 01/05/2014 et 02/05/2014 - 13:00 ET 12:00 I Obtenir 0 jour (s) 23 heures (s) . Bien que cela fasse des bonkers sur les négatifs: 01/05/2014 et 01/05/2014 - 13:00 et 12: 12: 00 i get -1 jour (s) -1 heure (s) s'il ne doit être que 0 jour (s) -1 heure (s) ( J'ai eu le même problème et que je ne pouvais contourner que cela garantit de toujours déduire moins de plus gros, puis ajout manuellement - dans le texte si recherché.



0
votes

Utilisez JQuery DatePicker pour choisir des dates

et pour la différence, essayez celui-ci ..

html xxx


0 commentaires

1
votes

Vous pouvez utiliser le satlePicker natif getDate fonctionnalité pour obtenir l'objet de date. Ensuite, utilisez les informations de cette réponse en ce qui concerne Prendre la journée en tenant compte de l'épargne Vous pouvez utiliser des heures de date UTC pour obtenir les différences exactes.

En plus de définir le réglage de la date extrêmement simple, si vous pouvez modifier la valeur de vos options, définissez-les sur les valeurs d'heure réelles, similaires à celles-ci: xxx

et cette xxx

qui rendra le code si facile en utilisant uniquement Caractéristiques de l'objet de date native Pour calculer vos dates et vos temps, sauf lors de la dividnge de 24 pour obtenir les jours à partir des heures, similaires à ceci: xxx


Démo - Obtenez la différence de jour et heure, en prenant des économies d'une journée en compte < hr>


2 commentaires

Je voterais votre réponse au lieu de réponse acceptée (@TUSHAR GUPTA'S) comme j'ai commenté sa réponse.


@Ashokdamani: J'ai lu votre commentaire sur -1 heure et j'ai dû regarder mon code. Il m'a fallu un peu de temps pour travailler comme pour une raison quelconque lors de la déduction UTC2 - UTC1 Quand UTC1 était plus gros. Les résultats sont passés tous bizarres. Je suis sûr qu'il y a une meilleure façon, mais j'ai calculé les différences à la fin en déduisant toujours plus de plus grandes et ajoutées le - si nécessaire à la fin. J'ai inclus les deux options désormais pour l'une ou l'autre du signe - ou non. Aussi ajouté une fonction de formatage pratique. Le code devrait maintenant fonctionner pour tous les scénarios.