Signalr 信号机日期时间格式

Signalr 信号机日期时间格式,signalr,Signalr,我在服务器端代码c#.net4中使用了signar。 在客户端上,我正在使用javascript 例如,当我从服务器调用客户机方法时 Caller.ShowDate(DateTime.Now); 客户端javascript获取值“2012-11-13T19:02:39.3386544+02:00”作为字符串 如何在javascript中将其用作日期 请记住,由于时区/客户端修改时钟等原因,客户端时间可能与服务器时间大不相同。也就是说: C#: JavaScript: myHub.cli

我在服务器端代码c#.net4中使用了signar。 在客户端上,我正在使用javascript

例如,当我从服务器调用客户机方法时

    Caller.ShowDate(DateTime.Now);
客户端javascript获取值“2012-11-13T19:02:39.3386544+02:00”作为字符串


如何在javascript中将其用作日期

请记住,由于时区/客户端修改时钟等原因,客户端时间可能与服务器时间大不相同。也就是说:

C#:

JavaScript:

myHub.client.ShowDate = function(d) {
    var serverTime = new Date(d); // The Server Time in JavaScript
}

请记住,由于时区/客户端修改时钟等原因,客户端时间可能与服务器时间大不相同。也就是说:

C#:

JavaScript:

myHub.client.ShowDate = function(d) {
    var serverTime = new Date(d); // The Server Time in JavaScript
}

如果您不喜欢使用IE8的人,请阅读以下评论:

Signaler使用Json.Net-library(反)序列化数据

在.NET 4.5之前,Json.NET使用epoch格式(“/Date(1198908717056)/”),然后开始使用ISO8601标准(“2012-03-19T07:22Z”)[参见

如果要使用epoch格式,需要重新配置json序列化程序[请参阅:

在客户端,您可以使用以下代码将历元时间转换为日期:

function epochUtcToDate(epochUtc) {
    return new Date(parseInt(epochUtc.substr(6), 10));
};

如果您不喜欢使用IE8的人,请阅读以下评论:

Signaler使用Json.Net-library(反)序列化数据

在.NET 4.5之前,Json.NET使用epoch格式(“/Date(1198908717056)/”),然后开始使用ISO8601标准(“2012-03-19T07:22Z”)[参见

如果要使用epoch格式,需要重新配置json序列化程序[请参阅:

在客户端,您可以使用以下代码将历元时间转换为日期:

function epochUtcToDate(epochUtc) {
    return new Date(parseInt(epochUtc.substr(6), 10));
};

若您已将时区添加到Json日期,则需要使用服务器上的本地时间

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        GlobalHost.HubPipeline.AddModule(new ElmahPipelineModule());
        app.Map("/signalr", map =>
        {
            map.UseCors(CorsOptions.AllowAll);
            var hubConfiguration = new HubConfiguration
            {
            };
            map.RunSignalR(hubConfiguration);
        });
        var jsonSerializer =  new JsonSerializer();
        jsonSerializer.DateFormatHandling = DateFormatHandling.IsoDateFormat;
        jsonSerializer.DateTimeZoneHandling = DateTimeZoneHandling.Local;
        jsonSerializer.NullValueHandling = NullValueHandling.Ignore;
        GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => jsonSerializer);


    }
}

若您已将时区添加到Json日期,则需要使用服务器上的本地时间

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        GlobalHost.HubPipeline.AddModule(new ElmahPipelineModule());
        app.Map("/signalr", map =>
        {
            map.UseCors(CorsOptions.AllowAll);
            var hubConfiguration = new HubConfiguration
            {
            };
            map.RunSignalR(hubConfiguration);
        });
        var jsonSerializer =  new JsonSerializer();
        jsonSerializer.DateFormatHandling = DateFormatHandling.IsoDateFormat;
        jsonSerializer.DateTimeZoneHandling = DateTimeZoneHandling.Local;
        jsonSerializer.NullValueHandling = NullValueHandling.Ignore;
        GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => jsonSerializer);


    }
}

请注意,您的决定使用“JavaScript 1.8.5”功能根据ISO8601的格式字符串创建日期对象。不幸的是,IE8不支持这一点:([请注意,您的决定使用“JavaScript 1.8.5”功能根据ISO8601的格式字符串创建日期对象。不幸的是,IE8不支持这一点:([