2015-08-28 73 views
1

有多少在线论坛,如StackOverflow和forum.asp.net显示问题和发布日期和时间的答案?关于根据用户时区存储和显示日期和时间

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

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

有时论坛会显示8小时前提出的问题,以及6.10分钟前发布的答案。

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

假设我的网站和数据库托管在美国服务器上。 假如有人问在8月21日上午的一个问题,在9:34来自印度和答案来自美国晚上公布在8月20日,但论坛上表示,如相关信息:

问题发布08月21日在9:34

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

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

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

指导我使用概念和示例。人们可以访问任何论坛问题,无需登录。那么服务器如何知道用户来自哪个国家以及什么是用户时区?在asp.net中,我们可以从服务器端知道什么是用户时区?

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

我看到论坛生成发布问题和答案的日期和时间信息在服务器端之前转移到客户端的HTML。因此,任何网站如何知道用户请求页面的时区。如果可能的话,我们可以将日期和时间转换为用户时区。

寻找引导线。谢谢

+0

谁关闭它........为什么有人关闭它。 – Thomas

+0

看起来像这样的副本:http://stackoverflow.com/questions/32256901/regarding-date-and-time-for-showing-issue-sql-server –

回答

0

一般而言,日期和时间应以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.NET Web应用程序中的时区为tricky

+0

一个问题。假设我有搜索的东西在谷歌和一个stackoverflow链接,我点击,然后在我的浏览器加载页面。所以当页面加载到我的浏览器然后在服务器端生成响应,然后javascript如何将日期和时间转换为本地时间为每个用户时区,因为日期和时间是在服务器端生成的。 – Thomas

+0

@Thomas'2015-08-28 09:19:09Z'中的'Z'部分告诉JavaScript这是一个UTC时间。如果你知道你的本地时区偏移量,从UTC到本地时间的转换是微不足道的。 –

+0

所以你的意思是说从服务器端UTC呈现,当客户端PC下载页面,然后我们必须使用一些像moment.js这样的js库来转换UTC日期和时间2015-08-28 09:19:09Z到当地时间?我是否正确地得到你? – Thomas

相关问题