2016-08-17 3 views
0

Для простого приложения оставить в UI5 мне нужно увеличить или уменьшить дату нового sap.ui.commons.DatePicker на один день на каждой кнопке нажмите , как я могу получить и установить новую дату?Как увеличить значение даты sap.ui.commons.DatePicker

Проблема в том, что DatePicker возвращает только строку Date. Я пробовал уже новую дату (datePicker.getYyyymmdd()), но затем я возвращаю дату Invalide.

+0

Я бы порекомендовал moment.js, если вам нужно сделать больше с датами. – cschuff

ответ

0

Возможное решение для разбора строки на объект даты можно найти here или here.

Вы должны также рассмотреть возможность переключения на sap.m.DatePicker, поскольку sap.ui.commons.DatePicker устарел в версии> = 1.38 (не знаю, какую версию вы используете). У 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, вы, конечно, можете использовать любые трюки Javascript из Stackoverflow. С другой стороны, команда UI5 уже построила эту логику для вас в классе DateFormat, поэтому, вероятно, это будет особенно полезно.

Чтобы получить от yyyymmdd до date, вы можете использовать:

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

Чтобы получить из date в yyyymmdd формате, вы можете использовать:

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

Чтобы увидеть дату Javascript calcluation и Класс DateFormat UI5 в действии, посмотрите на этот jsbin: http://jsbin.com/xeyiwic/1/edit?html,output

+0

Я думаю, что манипуляции с датами в JavaScript действительно отстой. Если вы использовали moment.js, как только вы никогда не захотите возвращаться снова :) – cschuff

+0

Если вы пришли из мира Java, вы узнаете, какое благословение есть родные Даты в Javascript. Я согласен с вами в том, что moment.js делает этот опыт еще лучше. – jpenninkhof

0

Теперь я использую sap.m.DatePicker и увеличиваю день следующим образом. Но когда я хочу установить новую дату, появляется ошибка, что это не объект даты. Однако, если я снова попробую datePicker.getDateValue(); Я получаю новую дату, но старая дата все еще отображается в Picker.

var date = datePicker.getDateValue(); 
date = date.setDate(date.getDate() +1) 
datePicker.setDateValue(date); 
Смежные вопросы