我使用datepicker来选择日期并将其发送到服务器.
当我记录JS值时,我得到了正确的结果:
Tue Mar 22 2016 00:00:00 GMT+0100 (Mitteleuropäische Zeit)
Run Code Online (Sandbox Code Playgroud)
但在ajax请求中
2016-03-21T23:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
我不修改值,只是给对象提供angulars http功能.
Angular需要一些配置才能处理它吗?
我知道有几个关于此问题的线程,我全部阅读了它们,但好几天都无法解决此问题。我可能找到了一个解决方案,但它似乎对我来说很脏。
\n\n因此,与其他用户一样,我对 datePicker 也有同样的问题。对我来说,它是 Angular Material Datepickermat-datepicker
当我记录该值时,我得到正确的结果:
\n\nWed Dec 24 1999 00:00:00 GMT+0100 (Mitteleurop\xc3\xa4ische Normalzeit)\nRun Code Online (Sandbox Code Playgroud)\n\n但在请求中是
\n\n1999-12-23T23:00:00.000Z\nRun Code Online (Sandbox Code Playgroud)\n\n我还尝试过什么:
\n\n我已添加{ provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }到我的component和 到我的app.module.ts. 这对我来说没有任何区别。
我的肮脏解决方案(在发送请求之前):
\n\nWed Dec 24 1999 00:00:00 GMT+0100 (Mitteleurop\xc3\xa4ische Normalzeit)\nRun Code Online (Sandbox Code Playgroud)\n\n当我这样做时,控制台会记录:
\n\nWed Dec 24 1999 01:00:00 GMT+0100 (Mitteleurop\xc3\xa4ische Normalzeit)\nRun Code Online (Sandbox Code Playgroud)\n\n并且请求是正确的:
\n\n1997-12-24T00:00:00.000Z\nRun Code Online (Sandbox Code Playgroud)\n\n但如果现在有人来自不同的时区,比如 GMT-0100,这将再次不起作用。如何正确解决这个问题?
\n\n如果有必要知道的话,我还会动态更改适配器:
\n\n1999-12-23T23:00:00.000Z\nRun Code Online (Sandbox Code Playgroud)\n 我在我的网站中使用了角度材料,当我将日期发送到我的 web api 时,它显示在所选日期的前一天。例如,如果我输入 2016-01-03,那么它将发送 2016-01-02。我该如何解决这个问题。我没有更改角度材料网站中提供的原始代码的任何代码,代码链接如下
我正在使用角度材料2 Date-Picker组件
它理解的唯一字符串输入是ISO日期格式
防爆."2017-11-13T10:39:28.300Z"
但我想用语言环境日期值修补我的表单控件
防爆."11/13/2017,下午4:09:46"
因此它输出后面的格式甚至期望这种格式.
我怎样才能做到这一点?有没有办法不使用ISO但自定义格式?
一些想法:
我应该写customDateAdaptor吗?
更新:
https://stackblitz.com/edit/angular-material-moment-adapter-example-bqvm2f
我试图通过扩展nativeDateAdaptor来实现自定义dateAdaptor