Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 什么';在项目具有不同时区的列表中实现日期过滤器的好方法是什么?_User Interface_User Experience - Fatal编程技术网

User interface 什么';在项目具有不同时区的列表中实现日期过滤器的好方法是什么?

User interface 什么';在项目具有不同时区的列表中实现日期过滤器的好方法是什么?,user-interface,user-experience,User Interface,User Experience,我们有一个列出体育赛事的应用程序。一个事件与2个队(主队和客队)关联。在事件列表中,我们显示了主队时区中的事件日期。我们在数据库中以UTC格式存储日期。我们需要在事件列表页面中添加一个日期筛选器,但问题是,由于我们在数据库中以UTC格式存储日期,并且事件列表中的日期显示在主队的时区中,因此日期筛选器显示意外结果。日期保存在我们的数据库中为2016-02-18 03:30:00+00(UTC)。在事件列表中显示给用户的时间是2016年2月17日下午7:30,因为主队在宾夕法尼亚州,时区是美国/纽约

我们有一个列出体育赛事的应用程序。一个事件与2个队(主队和客队)关联。在事件列表中,我们显示了主队时区中的事件日期。我们在数据库中以UTC格式存储日期。我们需要在事件列表页面中添加一个日期筛选器,但问题是,由于我们在数据库中以UTC格式存储日期,并且事件列表中的日期显示在主队的时区中,因此日期筛选器显示意外结果。日期保存在我们的数据库中为
2016-02-18 03:30:00+00
(UTC)。在事件列表中显示给用户的时间是2016年2月17日下午7:30,因为主队在宾夕法尼亚州,时区是美国/纽约

现在,当用户将日期过滤器设置为
02/17/2016
时,我们将查询数据库以获取日期为
02/17/2016
的所有事件。这将导致意外结果,因为它与事件不匹配,因为在我们的数据库中,日期是2016年2月18日

我能想到的一个解决方案是在事件列表中显示两个日期和时间列

日期(UTC)|时间(UTC)|日期(主队时区)|时间(主队时区)

并通知用户,当使用日期过滤器时,它将使用日期(utc)过滤事件

但我们目前正在寻找更好的解决方案。如有任何帮助/建议,将不胜感激:)

编辑:


如果用户在日期过滤器中选择2016年12月1日。它仍应显示上述3个事件。

在数据库中添加一个新字段,该字段将日期存储在其本地时间中,并使用该字段过滤结果

所以当你过滤,比如说,2016-04-01,它实际上会过滤不同时区的东西,即不在同一时间的事件

因此,请向我展示所有活动,例如周四,无论团队在哪里(意味着一个团队的周四是另一个团队的周五)

它将过滤本地化到存储日期的位置的结果

另一个解决方案是使用即时转换查询

例如:

where convert_to_local_without_timezone(event_datetime, event_tz) = date_filter
它可以是一个用户定义的函数-如果没有可以实现这一点的现有函数

归功于:


Aries、Ryan Johnson和Nikki Erwin Ramirez在数据库中添加一个新字段,将日期存储在其本地时间中,并使用该字段过滤结果

所以当你过滤,比如说,2016-04-01,它实际上会过滤不同时区的东西,即不在同一时间的事件

因此,请向我展示所有活动,例如周四,无论团队在哪里(意味着一个团队的周四是另一个团队的周五)

它将过滤本地化到存储日期的位置的结果

另一个解决方案是使用即时转换查询

例如:

where convert_to_local_without_timezone(event_datetime, event_tz) = date_filter
它可以是一个用户定义的函数-如果没有可以实现这一点的现有函数

归功于:


白羊座、瑞安·约翰逊和尼基·埃尔文·拉米雷斯

你能告诉我们你用什么来过滤日期吗?这是您正在执行的手册代码还是框架?在AngularJS等框架中,您可以在过滤器中配置时区。当用户选择一个日期时,将执行一个api请求,以获取按所选日期过滤的事件列表。我的问题是关于用户界面/用户体验。你能告诉我们你在使用什么作为日期过滤器吗?这是您正在执行的手册代码还是框架?在AngularJS等框架中,您可以在过滤器中配置时区。当用户选择一个日期时,将执行一个api请求,以获取按所选日期过滤的事件列表。我的问题是关于UI/UX的。