如何将一个时区的服务器时间转换为客户端的本地时间?

时间:2014-02-16 11:36:01

标签: javascript datetime

嗨,
从客户端我发送到服务器数据,当前日期为ISO格式。我正在使用 new Date().toISOString()用于在将日期发送到服务器之前编写日期时间。当我从服务器到客户端获取所有数据时,我在服务器的时区收到日期时间。

例如:
在服务器上我有这样的日期值 - "2014-02-16T03:10:13.383"
客户端应转换为当地时间 - "2014-02-16T13:10:13.383"

如何将datetime从服务器转换为客户端的本地时间?

2 个答案:

答案 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和另一个很棒的SO链接How can I handle time zones in my webapp?

答案 1 :(得分:0)

不确定这是否是您所需要的...将服务器时间转换为客户端时区。如果是,那么这可能会有所帮助。 https://github.com/GaneshKurcheti/ctoc_timezone