在javascript / jquery中获取客户端的服务器时间



我想在客户端使用与服务器端相同的日期。
例如,如果当前时间在服务器端是'2011-09-21 15:00:00',我希望能够得到一个javascript Date对象与该值('15:00:00'),即使客户端是在不同的时区。
到目前为止我所尝试的:
假设服务器时间为'15:00:00',客户端时间为'17:00:00',由于某种原因,我在客户端得到的Date对象总是包含'16:00:00'。
以下是我尝试过的:
1. 发送。net DateTime对象到客户端(它被序列化为"Date12345..."),并在客户端将其转换为Date对象:

function parseServerDate(strDate) {
    return new Date(parseInt(strDate.substr(6)));
}

或将。net DateTime对象转换为UTC数字:

    // returns the number of milliseconds since Jan 1, 1970 (useful for converting C# dates to JS dates)
    public static double UnixTicks(this DateTime dateTime)
    {
        DateTime epoch = new DateTime(1970, 1, 1);
        DateTime d2 = dateTime.ToUniversalTime();
        TimeSpan ts = new TimeSpan(d2.Ticks - epoch.Ticks);
        return ts.TotalMilliseconds;
    }

,然后创建新的Date对象:
new Date(milliseconds)new Date().setTime(milliseconds),两者都产生了与上面相同的结果。

我是否应该发送服务器的时区偏移量,并处理客户端的差异?
最好的办法是什么?

如果它是关于显示的,为什么需要Date对象客户端?为什么不简单地让服务器将datetime作为字符串发送,然后让客户机按原样显示呢?

相关内容

  • 没有找到相关文章

最新更新