服务器或客户端在发送/接收日期时是否应处理时区?
我了解最佳做法是将UTC日期/时间存储在我们的数据库中,并以本地时区向用户显示。我们将存储时区而不是偏移量,以便支持夏令时。
哪种方式最适合处理时区?
选项 1:服务器仅呼叫 UTC,客户端转换为时区
以 HTML 格式发送到浏览器的所有日期均采用 UTC 格式。客户端将使用 moment.js 或类似时间将 UTC 时间转换为正确的时区。将使用我们数据库中指定的时区而不是浏览器的本地时间,因为这可能不正确。
当用户提交日期或时间时,必须先将其转换为 UTC 时间,然后再提交到服务器。
选项 2:服务器转换为时区
所有计算仍以 UTC 格式进行,并且日期/时间在最后可能的时刻转换为正确的时区,例如在以 HTML 格式输出日期时。
当客户端提交任何日期/时间时,应立即将其转换为 UTC。