Angular 8 Дата сортировки Дата Сортировка дд / мм / гггг - PullRequest
0 голосов
/ 01 мая 2020

Я не могу отсортировать дату по возрастанию в Angular Datatable. Пожалуйста, помогите. Формат даты, который я получаю из API, это гггг-мм-дд, и я преобразовал его в дд-мм-гггг, используя функцию рендеринга.

Поскольку я хочу отображать дату только в дд-мм- гггг в дататабле, я конвертирую.

Пожалуйста, проверьте изображение для справки (первая строка и последняя строка)

HTML Класс

   <table datatable [dtOptions]="dtOptions" [dtTrigger]="dtTrigger"  class="row-border hover">
   </table>

В классе компонентов я использовал dtoptions для отображения данных

this.dtOptions = {

  ajax: {
    url: environment.api_base_url + "abc",

    method: 'POST',
    data: {
      "abccreateddate": this.myDate,

    },
    dataSrc: function (json) {
      //alert(json);
      let return_array = [];
      return_array = json;
      return return_array;
    }

  },
  "order": [[2, "asc"]],
  'columnDefs': [ { 'type': 'date', 'targets': 2 } ],
  columns: [

    {
      title: 'ReportName',
      data: 'reportname',

    },
    {
      title: 'Report Start Date',
      data: 'reportstartdate',
      "render": function (data) {
        var date = new Date(data);
        var month = date.getMonth() + 1;
        return  ("0" + date.getDate()).slice(-2) +"-"+ (month.toString().length > 1 ? month : "0" + month) + "-" + date.getFullYear();
    }
    },
    {
      title: 'Report Due Date',
      data: 'reportduedate',
      "render": function (data) {
        var date = new Date(data);
        var month = date.getMonth() + 1;
        return  ("0" + date.getDate()).slice(-2) +"-"+ (month.toString().length > 1 ? month : "0" + month) + "-" + date.getFullYear();
    }
  }

]

Мой ответ от API:

[{"reportname": "TestReport1" , "reportstartdate": "2020-04-30", "reportduedate": "2020-04-30"}, {"reportname": "Monthlynew", "reportstartdate": "2020-03-28", "reportduedate" : "2020-04-04"}]

пожалуйста, проверьте pi c для справки

1 Ответ

0 голосов
/ 01 мая 2020

попробуйте следующее для render метода

render: function ( data, type) {

    var dateDisplay = data.split('-').reverse().join('-');
    return type === "display" || type === "filter" ? dateDisplay : data;
}

на основе: руководства по датированным данным для функции рендеринга см. "Преобразование данных"

В качестве бонуса, Я включил более простой способ изменить гггг-мм-дд на дд-мм-гггг

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...