【发布时间】:2014-03-12 01:56:57
【问题描述】:
我知道这个问题已经被问过几次了,但我想我对它稍微不同的方面感兴趣。
我的网站有两种用户。我们称他们为前端 (FE) 用户和后端 (BE) 用户。 FE 用户未经身份验证(他们没有用户帐户,因此没有时区),但他们可以创建预订并选择特定的日期和时间。
BE 用户拥有用户帐户。他们可以选择自己的时区。当他们查看预订时,它应该显示与 FE 用户输入的时间完全相同的时间。如果我将此时间转换为使用 BE 的时区,则时间会出现偏差。
但是,其他日期时间(例如创建预订的时间)应转换为 BE 的时区。
例如,如果 FE 用户在 2014 年 3 月 11 日下午 5:00 创建预订,它将作为 UTC 时间 2014 年 3 月 11 日下午 5:00 存储在数据库中。 BE用户查看时,会从数据库中拉出,保留UTC,显示为下午5:00。
如果他们查看预订的创建时间,它可能是在 UTC 下午 2:00 记录的,但如果我向 BE 用户显示下午 2:00,他可能会感到困惑,因为它甚至可能出现在未来(如果 UTC领先于他的本地时区)!
因此,据我所知,解决此问题的唯一方法是非常小心我将时区转换为哪些日期,以及我不理会哪些日期,对吗?有没有简单的方法可以解决这个问题,以便我可以在整个应用程序中使用一致的时区?
【问题讨论】:
标签: timezone