ASP.NET Core Web API 接收由 Angular Material 日期选择器发布的一天回溯日期

问题描述 投票:0回答:1

当我从 Angular 材料日期选择器发布日期时,ASP.NET Core Web API 始终收到前一天的日期。

我发布了在表单控件中设置的日期,我将其分配给我的日期属性,如下所示

scheme.date1 = this.formControl.date1.value;

当我在 mat 日期选择器日历中选择

27th March 2024
日期时,
this.formControl.date1.value
会在控制台中打印此日期,这是正确的日期

Wed Mar 27 2024 00:00:00 GMT+0530 (India Standard Time)

时区始终显示正确,我的服务器位于

GMT+0530
时区。

但是后来我在 Web API 方法中收到数据,它是

26th March 2024
即比我从前端挑选和发送的数据早一天。

我尝试搜索解决方案并找到了很多链接,但找不到它的确切解决方案,大多数链接都是关于显示正确的日期。这些是我寻找的资源

https://github.com/angular/material/issues/4636

Angular Material DatePicker:日期变为所选日期的前一天

Angular Material Datepicker 返回确切日期前一天

https://angularmaterial.wordpress.com/2016/04/04/fix-in-md-datepicker-to-get-theselected-date/

angular datepicker asp.net-core-webapi materialdatepicker
1个回答
0
投票

经过大量研究终于找到了解决方案。

我必须将其添加到提供者中

{ provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }, 

这样,我在日期选择器中选择的任何日期仍然具有 GMT 值,但它会达到

00:00:00
时间。

例如,我现在处于

+05:30
GMT,所以当我在添加此提供程序后选择日期时,它有时间
5:30 PM
GMT +5:30
值,当我在服务器上收到时,它会达到具有相同日期的
00:00:00
时间正如我所选择的。

© www.soinside.com 2019 - 2024. All rights reserved.