WCF服务无法从运行在ie中的javascript解析日期时间

wcf service unable to parse datetime from javascript running in ie

本文关键字:javascript 中的 时间 日期 ie 服务 运行 WCF      更新时间:2023-09-26

我有一个WCF服务,其方法定义如下:

<WebGet(), OperationContract()>
    Public Function GetScene(cameraId As Integer, time As Date, bufferSize As Integer) As Scene

和这样的javascript:

time = new Date("04/09/2013 23:59")
$.getJSON('../Services/CameraViewerService.svc/GetPreviousScene', 'cameraId=' + _cameraId + '&time=' + time.toUTCString() + '&bufferSize=20', function () {...});

在chrome和firefox中,查询字符串中的日期最终看起来像这样:

Tue, 09 Apr 2013 23:59:00 GMT

和WCF服务消耗它很好,但是当我使用ie9时,查询字符串中的日期看起来像这样:

Tue, 9 Apr 2013 23:59:00 UTC

和WCF服务抛出异常:

The string was not recognized as a valid DateTime. There is an unknown word starting at index 26.

让它在所有浏览器上工作的最好方法是什么?

您可以使用toISOString()

这应该可以正常解析,因为它是公认的标准日期和时间格式之一。

在IE8和更早的版本中不支持toISOString(),但我的第一个链接中的Mozilla文档有一个示例shim,如果不支持该函数,您可以使用