1

我有一个对象数组,其中每个对象都有一个日期属性。

日期采用 ISO 8601 格式

当我尝试使用这样的电子表格公式根据日期过滤此数组时

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

此公式仅适用于时区 +1:00。它不适用于任何其他时区。我怎样才能使这个公式适用于任何时区?

我正在使用 Grapecity 的扩展视图库。

4

1 回答 1

1

我也找不到在 SpreadView 查询中设置时区的任何方法。在此处对类似查询的回答中,他们提到他们的控件也不支持时区。但是,您可以应用中间解决方案。当您传递日期对象时,他们似乎正在考虑当前浏览器的时区Date(yyyy,mm,dd)。因此,如果您可以将日期转换为您在浏览器的时区接收的数据(或您拥有的对象数组),理论上它将解决您的问题。您可以Date使用 moment.js 将对象数组中的字段转换为-

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)

这将根据浏览器的时区将集合中的日期值转换为适当的日期。在此预处理之后,您的给定查询应该按预期工作。

于 2017-08-31T01:24:23.773 回答