2010-07-23 12 views
1

J'ai besoin de créer une fonction pour filtrer les données en fonction du temps.Comparer les heures en javascript

J'ai une table de vols avec un temps de départ en lignes liées, est ce que je dois, je vais mettre aux champs de filtre de temps à ma forme, pour cacher des vols avant et après un temps limité. En d'autres termes, les intervalles entre deux intervalles de temps sélectionnés seront visibles.

je n'ai aucun problème à obtenir les informations de temps de la table et mes entrées, mais je ne maintenant comment les comparer. J'utilise jquery.

+1

Dans quel format est l'heure? – James

Répondre

6

Pas besoin de jquery sur celui-ci. Tout simplement javascript vieux.

La façon la plus simple est de convertir simplement les objets de date à temps unix en utilisant la méthode getTime (je pense que c'est le nom). Ensuite, faites simplement une comparaison plus grande/moins que pour voir si les valeurs sont dans la plage.

+0

Vive l'objet date javascript! –

0

Le plus simple et plus rapide de faire la manipulation des données du côté client (tri, le filtrage, le regroupement) est Jörder.

Dans votre cas, je suppose que les données ressemble à quelque chose comme ceci: (date1 et objets de date étant de date2)

var data = [{flight: '776', departure: date1}, {flight: '51', departure: date2}]; 

chose d'abord, créez une table Jörder hors du tableau, avec un indice sur l'heure de départ.

var table = jOrder(data) 
    .index('departure', ['departure'], {grouped: true, ordered: true}); 

Ensuite, vous pouvez facilement sélectionner la ligne avec des dates dans la plage spécifiée.

var hits = table.where([{ departure: {lower: datelow, upper: datehi}}], {mode: jOrder.range}); 

Enfin, vous pouvez reconstruire ou modifier les objets de l'interface utilisateur en fonction des résultats.

Jörder est disponible à http://github.com/danstocker/jorder.

Questions connexes