【问题标题】:Different input date beetween HTML and WebAPIHTML 和 Web API 之间的不同输入数据
【发布时间】:2016-12-21 02:51:08
【问题描述】:

我正在使用 Angular 和 WebAPI 开发网络应用程序。我对 Angular 控制器和 WebAPI 控制器之间的不同日期有一个奇怪的问题。在我的 html 页面上,我输入了日期类型:

 <input id="signupDateofBirth" ng-model="dateofBirth" placeholder="Date of birthday" type="date" max="1998-01-01" min="1900-12-31" class="form-control">

假设日期是 31.12.1990。我在我的角度控制器中分配它,而调试日期是正确的:31.12.1990:

DateOfBirth: $scope.dateofBirth

DateOfBirth: Mon Dec 31 1990 00:00:00 GMT+01

当我在 WebAPI 控制器中获取对象时出现问题。日期是 Angular 控制器日期的前一天。就像图像上的 30.12.1990:

有什么想法吗?也许我需要格式化它?

【问题讨论】:

    标签: javascript angularjs html asp.net-web-api


    【解决方案1】:

    这是因为时区而出现的。

    在您的控制器中,日期的格式与您当地的时区 (GMT+1) 一致。

    当您的 API 收到它时,它不知道如何处理它:您必须指定 JSON 中返回的日期是本地时区。

    尝试在您的 API startup.cs 中指定您的本地时区,例如使用 newtonsoft JSON:

    json.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
    

    编辑

    您应该始终将 ISO 格式的日期传递给您的 API,反之亦然。见:https://wikipedia.org/wiki/ISO_8601

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 1970-01-01
      • 2023-03-20
      • 2011-08-14
      相关资源
      最近更新 更多