2017-08-30 6 views
1

私は、各オブジェクトに日付プロパティがあるオブジェクトの配列を持っています。タイムゾーンとは無関係に日付をフィルタリングする方法は?

Date is in ISO 8601 format

私は、この式は唯一のタイムゾーン+1で働くこの

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

のようなスプレッドシートの計算式を使用して、日付に基づいて、この配列をフィルタ処理しようとすると:00。他のタイムゾーンでは動作しません。この式をどのタイムゾーンでも動作させるにはどうすればよいですか?

私は、Grapecityのスプレッドビューライブラリを使用しています。

+1

私はGrapecityの普及しているビューライブラリに精通していませんが、これは文字列表現で日付をフィルタリングするためです。最初の10文字にフィルタリングを使用するか、すべての日付をUTC日付に正規化してください。 –

答えて

1

SpreadViewのクエリでタイムゾーンを設定する方法が見つかりませんでした。同様のクエリhereへの回答では、コントロールのタイムゾーンもサポートしていないと述べました。ただし、中間的な解決策を適用することはできます。 Date(yyyy,mm,dd)のような日付オブジェクトを渡しているときに、現在のブラウザのタイムゾーンを考慮しているようです。だから、あなたが受け取っているデータ(またはあなたが持っているオブジェクトの配列)をブラウザのタイムゾーンに変換することができれば、それはあなたの問題を理論的に解決するでしょう。あなたは、ブラウザのタイムゾーンに応じて適切な日付にコレクション内のあなたの日付値に変換します

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) 

このAS-moment.jsを使用してオブジェクトの配列であなたのDateフィールドを変換することができます。この前処理の後、指定されたクエリは期待どおりに動作するはずです。

関連する問題