如何将新的Date()转换为JSON字符串?

我目前正在开发一个离子应用程序,我正在使用Ionic Native Calendar插件在我的项目中创建日历事件。 我希望能够为每个事件动态更改日期和时间,因此我使用Firebase作为后端,并希望将日历参数集成到我的JSON文件中以实现此目的。

一切都运行良好遵循标准方法,即具有function的按钮:

**home.html**  

然后声明function:

 **home.ts** createEvent() { this.calendar.createEvent('myEventName', 'myEventLocation', 'myEventNote', new Date(2017, 9, 20, 13, 0, 0, 0), new Date(2017, 9, 20, 14, 0, 0, 0)).then(() => { console.log('Event Created!'); }).catch((err) => { console.log('Oops, something went wrong:', err); }); } 

如果我在项目中运行上面的方法,则会成功创建事件。 但是 ,使用此方法将无法让我能够动态创建日历事件,这正是我想要实现的。 所以不知何故,我需要将home.ts文件中的home.ts createEvent()内的代码链接到我的JSON文件中,对吧? 所以这就是我到目前为止所尝试的,似乎没有任何工作,我不知道我哪里出错了 – 我怀疑我没有将新的Date()参数正确转换为可读的JSON串? 以下是我在尝试通过JSON动态创建事件时所做的工作:

home.html的:

  

home.ts:

 import firebase from 'firebase'; export class HomePage { events = []; constructor(..) { firebase.database().ref('events').on('value', snapshot => { this.events = snapshot.val(); }); } createEvent() { this.calendar.createEvent( this.item.item[0].title, this.item.item[0].location, this.item.item[0].notes, this.item.item[0].startDate, this.item.item[0].endDate, ). then(() => { console.log('Event Created!'); }) .catch((err) => { console.log('Oops, something went wrong:', err); }); } 

JSON文件(在Firebase数据库中):

 "events" : [ { "title" : "myEventName", "location" : "myEventLocation", "notes" : "myEventNote", "startDate" : "new Date(2017, 9, 20, 13, 0, 0, 0)", "endDate" : "new Date(2017, 9, 20, 14, 0, 0, 0)" }, { 

因此,当我运行上面没有任何操作时,没有使用此方法创建日历事件。 请协助。 谢谢。

只是解决了如何将日期转换为JSON的问题,您可以使用Date.prototype.toJSON() ( MDN获取更多信息)。 但我不确定这是否真的能解决您动态创建事件的问题。

经过一番窥探后,我使用以下方法让它工作……

home.html的:

  

home.ts:

 import firebase from 'firebase'; export class HomePage { public events; public item; constructor(...) { firebase.database().ref('events').on('value', snapshot => { this.events = snapshot.val(); }); this.item.startDate = new Date(this.item.startDate); this.item.endDate = new Date(this.item.endDate); } createEvent() { this.calendar.createEventInteractively( this.item.title, this.item.eventLocation, this.item.notes, this.item.startDate, this.item.endDate, ). then(() => { console.log('Event Created!'); }) .catch((err) => { console.log('Oops, something went wrong:', err); }); } 

JSON文件(在Firebase数据库中):

 "events" : [ { "title" : "myEventName", "eventLocation" : "myEventLocation", "notes" : "myEventNote", "startDate" : "2010-05-10T10:20:00+02:00", "endDate" : "2010-05-10T18:30:00+02:00" }, {