如何将Angular Date转换为特定格式的新Date()?

时间:2019-08-09 21:35:59

标签: angular

我是Angular的新手。我正在将Angular 8与ASP.net Core一起使用。

我安装了ng-Bootstrap,因此可以获得不错的DatePicker。由于某种原因,DatePicker使用其自己的格式存储日期,就像这样。

开始日期:{年:2019,月:8,天:31}

我需要创建一个新的Date对象并像这样存储日期。

开始日期:“ 2019-31-08”

这不起作用。

var newDate = new Date(StartDate.getFullYearUtc(), StartDate.getMonthUtc(), Start.getDayUtc);

这不起作用。它创建了一个奇怪的日期。

var newDate = new Date("2019-31-08");

这不起作用。它想创建一个字符串。

var date = this.datePipe.transform(StartDate, "yyyy-MM-dd");

这将转换为字符串。

var newDate = new Date("2019-31-08").toISOString();

有人知道如何在不转换为字符串的情况下创建新的Date对象吗?

非常感谢您的帮助!谢谢!

2 个答案:

答案 0 :(得分:0)

var newDate = new Date(2019, 7, 31);将使用这些值创建一个新的日期对象。可以在这里找到更多信息:https://www.w3schools.com/js/js_dates.asp

答案 1 :(得分:0)

哇,真是一团糟!我首先不得不花时间来阅读日期。然后,我能够将ISO字符串转换为ASP.Net Core Web API可以使用的日期。

转换为ISO字符串

var startDate = moment(content.StartDate).add(-1,'M').toISOString();

ISO字符串转换为日期

const newStartDate = moment(startDate, moment.defaultFormatUtc).toDate();

日期的格式仍然不像使用表单中的普通Angular Date对象那样,但是至少ASP.Net可以使用它。

Asp.Net Core Web API

Convert.ToDateTime(content.StartDate);

“转换为ISO字符串”方法不适用于所有NgbDates。我修改了此转换器以使用Date。这似乎可以解决问题。

https://stackoverflow.com/a/54078224