Javascript 角度数据采集器发送的日期数据太多,需要转换

Javascript 角度数据采集器发送的日期数据太多,需要转换,javascript,angular,typescript,datepicker,Javascript,Angular,Typescript,Datepicker,在Angular 5中,我使用了一些npm包来表示日期 import { OwlDateTimeModule, OwlNativeDateTimeModule } from 'ng-pick-datetime'; 问题是我需要发送到服务器的是 仅此格式 2018-05-23 然而,它正在发送所有这些信息 Tue%20May%2022%202018%2017:00:00%20GMT-0700%20(US%20Mountain%20Standard%20Time) 全业务电话 如何转换它?%

在Angular 5中,我使用了一些npm包来表示日期

import { OwlDateTimeModule, OwlNativeDateTimeModule } from 'ng-pick-datetime';
问题是我需要发送到服务器的是

仅此格式

2018-05-23
然而,它正在发送所有这些信息

Tue%20May%2022%202018%2017:00:00%20GMT-0700%20(US%20Mountain%20Standard%20Time)
全业务电话

如何转换它?

%20是空间URI编码的(您可以在任何地方看到它,所以最好记住它) 这意味着我们可以:

const str = decodeURIComponent("Tue%20May%2022%202018%2017:00:00%20GMT-0700%20(US%20Mountain%20Standard%20Time)");
// which gives: "Tue May 22 2018 17:00:00 GMT-0700 (US Mountain Standard Time)";
这看起来像是一个有效的日期字符串,所以我们可以将它传递给date

new Date(str); // Note that this will return the date in YOUR locale.
// In my case: Wed May 23 2018 09:00:00 GMT+0900 (Japan Standard Time)
由于您所需的格式与toISOString格式非常相似,因此我们将使用该格式并在“T”处拆分

可能需要一些错误检查。(如日期是否有效)

对于任何更高级的东西,我都会停下来

编辑:(哦,我想我的阅读理解能力和往常一样差了。不过,我认为toISOString()和split是最简单的选择(因为你似乎已经有了一个日期对象),而不需要加入其他内容。还有…)


(您的问题是试图发送一个日期对象而不是字符串。)

能否添加一些代码,说明如何获取该日期以及如何构造API调用?
const myFormat = new Date(str).toISOString().split("T")[0];
// returns "2018-05-23" (or whatever your locale might be).