根据位置处理日期的最佳方式。 SQL / JS

时间:2014-02-14 06:47:29

标签: javascript sql

简单方案:

John Doe住在加利福尼亚并发表评论。 Jane Doe住在马里兰州并对评论发表评论。

我习惯于处理基于本地的网站,通常使用GETDATE()。处理这个问题的最佳方法是什么,以便John和Jane根据他们的时间位置查看日期?我是否基于javascript函数向SQL查询发送参数以获取其时区?还有更好的方法吗?

Facebook就是一个很好的例子。他们如何处理所有不同的时区?是客户端吗?服务器端?等

谢谢!

1 个答案:

答案 0 :(得分:0)

处理通常是两次。要在服务器端处理它,您需要可靠的时区信息。这通常是从用户在其个人资料页面中的时区首选项中获得的。

话虽如此,我们需要确保在客户端捕获的所有日期数据以及存储在DB中的日期数据都是UTC格式。 JS函数已准备好支持UTC日期时间。

当您存储时,在JS中使用UTC()方法来获取日期。

当显示回来时,你提供了与DB相同的时区(基于存储的用户时区数据)或使用JS从浏览器语言环境中获取它

<script type="text/javascript">
        function showDateInClientSideFormat(dValue)
        {
            var d = new Date()
            var n = d.getTimezoneOffset();
            var dateClientSide = new Date(dValue +n);
            return dateClientSide;
        }
    </script>

另请参阅我的答案https://stackoverflow.com/a/21573366/1123226