关于按用户时区存储和显示日期和时间



有多少在线论坛像StackOverflow和forum.net显示问题和发布的答案与日期和时间?

如何将日期和时间存储到sql server表中?

他们是否以UTC格式存储日期和时间?

有时论坛显示一个8小时前问的问题,也有一个6.10分钟前发布的答案。

它们如何区分存储的utc日期和时间与当前日期和时间?它们如何区分存储的utc日期和时间与用户时区时间?

假设我的网站和数据库托管在美国服务器。假设有人在8月21日上午9:34从印度问了一个问题,而答案是在8月20日晚上从美国发布的,但论坛显示的信息如下:

问题张贴在Aug 21 at 9:34

和答案张贴在8月21日9:38

这怎么可能?它显示正确的日期和时间吗?

请讨论我们应该如何在sql server db中以UTC格式存储日期和时间,以及如何显示结果不会在读者心中造成混乱。

用概念和例子指导我。人们可以在没有登录的情况下访问任何论坛问题。那么服务器如何知道用户来自哪个国家,用户的时区是什么?在asp.net中,我们可以从服务器端知道什么是用户时区吗?

当用户请求一个页面,然后从代码文件,我们可以知道什么是用户的时区?

我看到论坛生成张贴的问题和答案的日期和时间信息在服务器端传输html到客户端之前。那么任何网站如何知道来自哪个时区的用户请求页面呢?如果可能的话,我们可以将日期和时间转换为用户时区。

寻找指导线。由于

一般来说,日期和时间应该以UTC格式存储,并且只在UI层显示为当地时间。

StackOverflow使用客户端JavaScript来转换:

<span title="2015-08-28 09:19:09Z" class="relativetime" />

<span title="2015-08-28 09:19:09Z" class="relativetime">24 mins ago</span>

(timeago是一个jQuery插件的例子,可以做到这一点)。

这可能是由于JavaScript是在客户端执行的,因此它知道"浏览器"的时区,就像它一样。

从ASP内部确定时区。

最新更新