2017-07-27 8 views
0

ネイティブ/デバイスカレンダーでイベントを作成しようとしています。私は、開始日と終了日を入力できるHTMLフォームを作成しました。今、Ionic createイベントは、日付の種類として開始日と終了日のみを認識します。私は何をしますか?文字列をdatetimeに変換するにはどうしたらいいですか?あなたはngModel属性で入力値を保存する変数を設定しイオン2カレンダーはhtmlからion-datetimeを選択しません

<ion-content> 
 
    <ion-item> 
 
    <ion-label>Title</ion-label> 
 
    <ion-input type="text" name="title" [value]="" (input)="title= $event.target.value"></ion-input> 
 
    </ion-item> 
 
    <ion-item> 
 
    <ion-label>Details</ion-label> 
 
    <ion-input type="text" name="details" [value]="" (input)="details= $event.target.value"></ion-input> 
 
    </ion-item> 
 

 

 
    <ion-item> 
 
    <ion-label>Start Date</ion-label> 
 
    <ion-datetime displayFormat="MMM DD, YYYY HH:mm" pickerFormat="MMM DD, YYYY HH:mm" name="startDate" (input)="startDate = $event.target.value"></ion-datetime> 
 
    </ion-item> 
 

 
    <ion-item> 
 
    <ion-label>End Date</ion-label> 
 
    <ion-datetime displayFormat="MMM DD, YYYY HH:mm" pickerFormat="MMM DD, YYYY HH:mm" name="endDate" (input)="endDate = $event.target.value"></ion-datetime> 
 
    </ion-item> 
 

 
</ion-content>

title: string = ''; 
 
details: string = ''; 
 
startDate: any = ''; 
 
endDate: any = ''; 
 

 
constructor(public calendar: Calendar) { 
 

 
} 
 

 
createEvent() { 
 

 
    this.calendar.createEventWithOptions(this.title, null, this.details, this.startDate, this.endDate).then(() => { 
 
    alert("success"); 
 
    },() => { 
 
    alert("Fail"); 
 
    }); 
 
}

答えて

0

[OK]をので、私は解決策を見つけました。それが他人を助ける場合に備えてソリューションを共有します。

上記のコードに加えて、私はcreate関数で渡す際に日付フォーマットも追加しました。返信用

date; 
 

 
let startDate: Date = new Date(this.date); 
 

 
this.calendar.createEventInteractivelyWithOptions(this.title, this.pickUpLocation, this.description, new Date(startDate), new Date(startDate)) 
 
}

1

は、以下の私のコードを参照してください。 createEvent機能で

<ion-content> 

    <ion-item> 
    <ion-label>Title</ion-label> 
    <ion-input type="text" name="title" [value]="" [(ngModel)]="title"></ion-input> 
    </ion-item> 
    <ion-item> 
    <ion-label>Details</ion-label> 
    <ion-input type="text" name="details" [value]="" [(ngModel)]="details"></ion-input> 
    </ion-item> 

    <ion-item> 
    <ion-label>Start Date</ion-label> 
    <ion-datetime displayFormat="MMM DD, YYYY HH:mm" pickerFormat="MMM DD, YYYY HH:mm" name="startDate" [(ngModel)]="startDateString"></ion-datetime> 
    </ion-item> 

    <ion-item> 
    <ion-label>End Date</ion-label> 
    <ion-datetime displayFormat="MMM DD, YYYY HH:mm" pickerFormat="MMM DD, YYYY HH:mm" name="endDate" [(ngModel)]="endDateString"></ion-datetime> 
    </ion-item> 

</ion-content> 

あなたは今までに日付文字列を変換する必要があります。

title: string = ''; 
    details: string = ''; 
    startDateString: string = ''; 
    endDateString: string = ''; 

    constructor(public navCtrl: NavController, public calendar:Calendar) { 

    } 

    createEvent() { 
    // Check if dates have been selected 
    if(this.startDateString.length>0 && this.endDateString.length>0){ 
     let startDate:Date = new Date(this.startDateString); 
     let endDate:Date = new Date(this.endDateString); 
     this.calendar.createEventWithOptions(this.title, null, this.details, startDate, endDate).then(() => { 
     alert("success"); 
     },() => { 
     alert("Fail"); 
     }); 
    } 
    } 
+0

感謝。しかし、残念ながらそれは動作しません。私はconsole.log startDateStringしようとしました。入力された日付文字列を日付タイプに変換できないようです。以下はconsole.logの結果です:startDateString "2017-01-01T02:00:00Z" VM795 main.js:66 startDate 1483236000000 – JBhatt

+0

解決方法はありますか?以下は私のコードです: createEvent() { if(this.startDateString.length>0 && this.endDateString.length>0){ let startDate:Date = new Date(this.startDateString); let endDate:Date = new Date(this.endDateString); console.log('startDateString', JSON.stringify(this.startDateString)); console.log('startDate', +startDate); this.calendar.createEvent(this.title, null, this.details, startDate, endDate).then(() => { alert("success"); },() => { alert("Fail"); }); } JBhatt

+0

上記のことをお詫び申し上げます。私はstackoverflowに新しいとコメントにコードを追加する方法を実際にはわからない:( – JBhatt

関連する問題