изменить формат даты в vaadin-grid

angular vaadin vaadin-grid

825 просмотра

2 ответа

159 Репутация автора

Я вытягиваю Date из базы данных в vaadin-grid (vaadin-table) с помощью angular2. Все, что мне нужно, это формат MM / DD / YYYY. Фильтры даты не работают в сетке vaadin, как {{dateOfBirth | дата: 'дд / мм / гггг'}}.

Спасибо! Примеры имеют наибольшее значение для меня, так как я очень новичок в vaadin.

Автор: NunnaS Источник Размещён: 19.07.2016 09:36

Ответы (2)


1 плюс

12872 Репутация автора

Я не эксперт в Vaadin Polymer & Angular2, потому что я в основном работал с классическим Vaadin, но, глядя на их образцы (в настоящее время строка 182) , похоже, вы можете предоставить визуализатор. Менеджер раздолье демо имеет в Dateкачестве своего первого столбца, а в источниках вы можете увидеть рендер , а также, используя moment.js библиотеки:

grid.columns[0].renderer = function(cell) {
  cell.element.innerHTML = moment(cell.data).format('MM/DD/YYYY');
};

который генерирует:

введите описание изображения здесь

Если вы посмотрите на moment.jsпараметры форматирования, вы можете изменить его, например, на что угодно DD/MM/YYYY. Вот базовый JSFiddle, который делает именно это (извините, фрагмент кода SO дал ошибку, которую я не смог выяснить ...).

Автор: Morfic Размещён: 19.07.2016 02:18

0 плюса

1 Репутация автора

Форматирование в формате ДД / ММ / ГГГГ ввода vaadin-даты при выборе даты (vaadin-date-picker).

toDDMMYYYY = function(dateFromInput){ //DD/MM/YYYY
           dateFromInput.set('i18n.formatDate', function(d) {
             var yearStr = d.getFullYear().toString();
             var dateFormatted =  d.getDate() + '/' + (d.getMonth() + 1) + '/' + yearStr;
             return dateFormatted
           });
           dateFromInput.set('i18n.parseDate', function(t) {
             var parts = t.split('/');
             var today = new Date();
             var date, month = today.getMonth(), year = today.getFullYear();

             if (parts.length === 3) {
               year = parseInt(parts[2]);
               if (parts[2].length < 3 && year >= 0) {
                 year += year < 50 ? 2000 : 1900;
               }
               month = parseInt(parts[1]) - 1;
               date = parseInt(parts[0]);
             } else if (parts.length === 2) {
               month = parseInt(parts[1]) - 1;
               date = parseInt(parts[0]);
             } else if (parts.length === 1) {
               date = parseInt(parts[1]);
             }
             if (date !== undefined) {
               var result = new Date(0, 0); // Wrong date (1900-01-01), but with midnight in local time
               result.setFullYear(year);
               result.setMonth(month);
               result.setDate(date);
               return result;
             }
           });
         };
Автор: trapsidd Размещён: 04.06.2017 08:37
Вопросы из категории :
32x32