2016-08-17 9 views
0

UI5の単純な離脱アプリケーションでは、新しいsap.ui.commons.DatePickerの日付を各ボタンのプレスで1日増分または減分する必要がありますどうすれば新しい日付を取得して設定できますか?sap.ui.commons.DatePickerの日付値を増やす方法

問題は、DatePickerがDateの文字列のみを返すことです。私はすでに新しいDate(datePicker.getYyyymmdd())を試しましたが、Invalideの日付を返します。

+0

日付の追加をする必要がある場合は、私はmoment.jsをお勧めします。 – cschuff

答えて

0

文字列を日付オブジェクトに解析する方法は、hereまたはhereです。

sap.ui.commons.DatePickerはバージョン> 1.38では廃止予定です(使用しているバージョンがわからないため)sap.m.DatePickerに切り替えることを検討する必要があります。 sap.m.DatePickerにはメソッドgetDateValueもあり、これはすでに日付オブジェクトを返すべきです。

+0

今私はsap.m.DatePickerに変更しました。ドキュメンテーションの中に何らかの形で非推奨としてマークされていません。 – Matthias

+0

実際には、sap.ui.commonsライブラリ全体は廃止予定です。はい、それはマークされています:https://sapui5.hana.ondemand.com/sdk/#docs/api/symbols/sap.ui.commons.DatePicker.html – cschuff

0

Javascriptでの日付の操作は本当に簡単です。日付に日付を追加する場合は、date.setDate(date.getDate() + 1)となり、同じ方法で減算すると、date.setDate(date.getDate() - 1)となります。

日付選択ツールで使用されているyyyymmdd形式をJavaScriptのネイティブdateタイプに戻すだけで済みます。 @ R.Schmittで述べたように、もちろんStackoverflowのJavascriptトリックを使うことができます。一方、UI5チームはすでにこのロジックをDateFormatクラスに組み込んでいます。そのため、おそらくこれを活用するのが一番です。

yyyymmdddateから取得するには、使用することができます:

sap.ui.core.format.DateFormat.getDateInstance({pattern : "YYYYMMdd" }).parse(date); 

dateyyyymmddにフォーマットから取得するには、使用することができます。

sap.ui.core.format.DateFormat.getDateInstance({pattern : "YYYYMMdd"}).format(yyymmdd); 

をJavaScriptのDate calcluationを参照して、実際のUI5のDateFormatクラスは、このjsbinを見てください: http://jsbin.com/xeyiwic/1/edit?html,output

+0

私はJavaScriptでの日付の操作は本当に嫌だと思う。再びあなたに戻ってほしくないと思ったらmoment.jsを使用した場合: – cschuff

+0

あなたはJavaの世界から来た場合、あなたはJavascriptのネイティブの日付の祝福が何であるかを知っています。私はあなたにその瞬間に同意します.jsはその経験をより良くします。 – jpenninkhof

0

私は今、sap.m.DatePicker を使用し、次のように日を増やします。しかし、私は新しい日付を設定したいときは、それはもはや日付オブジェクトではないというエラーを得る。しかし、私は再びdatePicker.getDateValue();私は新しい日付を取得しますが、古い日付は引き続きPickerに表示されます。

var date = datePicker.getDateValue(); 
date = date.setDate(date.getDate() +1) 
datePicker.setDateValue(date); 
関連する問題