繁体   English   中英

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

[英]get server time on the client side in javascript / jquery

我想在客户端使用日期,就像在服务器端一样。
例如-如果服务器端的当前时间是'2011-09-21 15:00:00',我希望能够获得具有该值('15:00:00')的javascript Date对象,即使如果客户在其他时区。
到目前为止我尝试过的是:
假设服务器时间为“ 15:00:00”,客户端时间为“ 17:00:00”,出于某种原因,我在客户端获得的Date对象始终包含“ 16:00:00”。
这是我尝试过的:
1.向客户端发送一个.net DateTime对象(它序列化为"Date\\12345...\\" ),然后在客户端将其转换为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对象? 为什么不简单地让服务器将日期时间作为字符串发送并让客户端按原样显示呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM