【问题标题】:Send javascript date to webservice将javascript日期发送到网络服务
【发布时间】:2011-06-23 12:04:42
【问题描述】:

我有一个 .NET 网络服务,它接受一个整数,一个日期对象有一个参数。我正在使用带有 jQ​​uery 的 AJAX 调用 Web 服务,但我无法以正确的格式发送日期。

当 .NET 网络服务返回一个日期对象时,它是 UTC 格式(自 1970 年 1 月 1 日以来的毫秒数),所以我想在从客户端向网络服务发送日期时应该使用相同的格式,但是当我这样做时(例如,该值 Date(1308787200000)),然后我从 web 服务收到一个错误,说它“不是 DateTime 的有效值”。

我在这里错过了什么?

问候, 史蒂芬

【问题讨论】:

  • "Date(1308787200000)" 不是有效日期,"1308787200000" 可能是。不知道你为什么要在它周围加上“Date()”。
  • 当网络服务返回一个日期对象时,它会像Date(1308787200000)
  • 主要是因为当 web 服务将日期发送回客户端时,日期看起来像这样。我只是试图删除日期,只留下数字部分。仍然得到同样的错误:-/
  • 由于日期可以在不同的机器上采用不同的格式,因此通过服务传递日期是不可取的,我更喜欢将其作为具有特定格式的字符串发送并在另一端解析它

标签: javascript jquery web-services date


【解决方案1】:

当您将 javascript 日期对象序列化为 json 时,它会转换为 date(time_since_epoch),以便使用 javascript 轻松将其转换回来。

另一方面,.NET 喜欢不同的日期格式...并且该格式取决于机器的本地化。通常这是 Windows 机器本地时区中的“mm/dd/yyyy hh:mm:ssAM”。

最好的办法是在 javascript 端将此日期转换为字符串,或在 .NET 端解析日期。

在 .NET 端,您可以使用以下转换字符串(再次取决于服务器的本地时间):

 DateTime.Parse

【讨论】:

    【解决方案2】:

    使用这个:var now = new Date().toISOString();

    它将为您提供正确的格式(即 2014-02-23T20:16:26:298Z)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多