2017-08-30 2 views
1

J'ai un tableau d'objets où chaque objet a une propriété date.Comment filtrer la date indépendamment de Timezone?

Date is in ISO 8601 format

Lorsque je tente de filtrer ce tableau en fonction de la date en utilisant la formule de feuille de calcul comme celui-ci

[Date]=Date(2017,8,2) 

Cette formule ne fonctionne que dans le fuseau horaire +1: 00. Il ne fonctionne pas d'autre fuseau horaire. Comment puis-je faire fonctionner cette formule sur n'importe quel fuseau horaire? J'utilise la bibliothèque Spreads views de Grapecity.

+1

Je ne suis pas familier avec la bibliothèque de vues de propagation de Grapecity, mais je suppose que c'est parce qu'il filtre des dates par la représentation de chaîne. Essayez d'utiliser le filtrage sur les 10 premiers caractères ou peut-être de normaliser toutes les dates aux dates UTC. –

Répondre

1

Je n'ai pas trouvé de moyen de définir le fuseau horaire dans la requête pour SpreadView non plus. Dans une réponse à une requête similaire here, ils ont mentionné qu'ils ne prennent pas en charge le fuseau horaire dans leurs contrôles non plus. Vous pouvez cependant appliquer une solution intermédiaire. Ils semblent prendre en compte le fuseau horaire du navigateur actuel lorsque vous passez un objet date comme Date(yyyy,mm,dd). Donc, si vous pouvez convertir les dates dans vos données que vous recevez (ou, le tableau des objets que vous avez) dans le fuseau horaire du navigateur, cela résoudrait votre problème en théorie. Vous pouvez convertir votre champ Date dans le tableau d'objets à l'aide moment.js AS-

cons convertDateTimeToBrowserTime = (dateTimeWithTimeZone) 
    => moment(dateTimeWithTimeZone, 'YYYY-MM-DDTHH:mm:ssZ').local().format('YYYY-MM-DD') 
    // with recent version of moment, you can use a slightly shorter syntax like: 
    // => moment(dateTimeWithTimeZone, moment.ISO_8601).local().format(YYYY-MM-DD) 

Cela vous permet de convertir vos valeurs de date dans la collection à la date appropriée selon le fuseau horaire du navigateur. Après ce pré-traitement, votre requête donnée devrait fonctionner comme prévu.