小编zvz*_*vzz的帖子

浏览器中跨时区的相同日期时间 - 在预订引擎上

我正在寻找在任何浏览器中使用相同时间在国际上预订服务的最佳实践/解决方案。我不太明白逻辑(也在这里挖掘)。

用例

  • 布鲁塞尔预订的用户可以说是在新加坡提供理发服务 - 他一周后飞往那里。他在浏览器日期时间控件中选择了 14:00。但是,浏览器设置为 +1 UTC。
  • SG理发师应将其议程中的时间视为SG时间14:00。
  • 理发店老板正在迪拜旅行,尽管他的浏览器暂时设置为 +4 UTC,但他仍希望在 SG 时区查看他的议程。

基本上,所有角色都必须在本地时间看到“理发店”,无论他们在哪个 TZ,并在“商店”时间向服务器报告。

服务器时间为 UTC,时间戳以 unix 秒为单位。“店”TZ是众所周知的。

问题是我使用了几个 jquery 插件(datetimepicker 和日历),它们在内部利用浏览器本地时间,并且有几千行代码需要分析和修复,使其不太受支持 - (布鲁塞尔 | 任何其他 TZ 中的浏览器)每个“新日期()”将获得本地浏览器时间。也有一些狭窄的地方(因为这些假想的“理发店”位于世界各地并且是从地图中挑选出来的,所以目标 TZ 是动态的)。

通常的做法是什么?

是不是更容易

  • 在不关心时区的 js 中模拟“动态”基准日期,并提供给插件
  • 加载到客户端时将服务器数据转换为本地 TZ
  • 应用一些其他解决方案

非常感谢

PS 我已经阅读了最佳实践- 但正如我所说,我一定会使用特定的插件。

解决方案

我意识到我不需要这些日期时间的相对值,因为我从不需要在时间上比较不同“理发店”的书籍(每个“商店”都有纬度/经度,如果需要,我仍然可以重新计算相对时间)。

基本上,无论时区如何,我都只需要绝对UTC 值,在这种情况下,unix 时间(自 1970 年 UTC 以来的秒数)非常适合。

现在我没有在客户端通过用户浏览器偏移量更正时间,将其发送到后端,并通过目标偏移量将其固定在那里,而是在客户端和服务器/数据库端以明确的 UTC 日期运行整个系统,存储和显示所有角色,只有日期/时间过滤器除外,它们绑定到本地浏览器时钟并且不存储在任何地方。

jquery timezone date unix-timestamp

5
推荐指数
1
解决办法
1559
查看次数

标签 统计

date ×1

jquery ×1

timezone ×1

unix-timestamp ×1