Есть ли способ изменить формат объекта даты, но сохранить его как дату, а не строку?У меня есть функция, которая преобразует новый объект Date () в следующий формат:
function formatDate(date) {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var day = date.getDate(),
monthIndex = date.getMonth(),
year = date.getFullYear();
return monthNames[monthIndex].substr(0,3) + ' ' + day + ', ' + year;
}
Однако, это преобразует дату в строку.Я хочу изменить форматирование так, чтобы моя дата отображалась как 15 февраля 2019 года, но я хочу сохранить ее как объект даты, чтобы она сортировалась в хронологическом порядке, а не по алфавиту.Возможно ли это?
EDIT:
В нашей таблице мы можем отсортировать содержимое таблицы в хронологическом порядке, создав объект даты для start_date в нашем массиве объектов:
start_date: new Date(onbCase.getDisplayValue('hr_profile.employment_start_date'))
, затем форматирование объекта даты в MMM d, YYYY с использованием фильтра канала в HTML:
<td ng-show="c.options.start_date" title="{{item.start_date}}">{{item.start_date | date:'mediumDate':'Z'}}</td>
Наша проблема возникает, когда мы пытаемся заставить наши фильтры столбцов также отображаться в хронологическом порядке.с тем же форматом.Вот как мы создаем наши фильтры столбцов в контроллере:
c.filter = function() {
for (var i=0; i<c.onbCase.length; i++) {
c.onbCase[i].case_visible = true;
for (var z=0; z<c.filters.length; z++) {
if(c[c.filters[z].model] && c[c.filters[z].model].length > 0) {
var model = c[c.filters[z].model];
if (model.indexOf(c.onbCase[i][c.filters[z].attribute]) == -1) {
c.onbCase[i].case_visible = false;
}
}
}
}
//Store unique values for filters
generateFilterOptions();
return;
}
$scope.searchTable = ''; // set the default
/*/////////////////////////////////////////////////////////////////////////////
// Support Function: Define filters //
*//////////////////////////////////////////////////////////////////////////////
function defineFilters() {
//Declare filter variables
c.filters = []
c.start_date_list = [];
if(c.options.start_date){
c.filters.push({
id: 'start_date',
label: 'Start Date',
model: 'start_date_select',
unique_list: 'start_date_list',
attribute: 'start_date'
});
}
}
/*/////////////////////////////////////////////////////////////////////////////
// Support Function: Generate filter options //
*//////////////////////////////////////////////////////////////////////////////
function generateFilterOptions() {
c.numResults = 0;
//Initialize filter options
for (var z=0; z<c.filters.length; z++) {
c[c.filters[z].unique_list] = [];
}
//Store unique values for filters
for (var i=0; i<c.onbCase.length; i++) {
if (c.onbCase[i].case_visible) {
c.numResults++;
for (var x=0; x<c.filters.length; x++) {
if (c[c.filters[x].unique_list].indexOf(c.onbCase[i][c.filters[x].attribute])===-1) {
c[c.filters[x].unique_list].push(c.onbCase[i][c.filters[x].attribute]);
}
}
}
}
//Sort unique values for filters
for (var y=0; y<c.filters.length; y++) {
c[c.filters[y].unique_list].sort();
}
}
Это вернет фильтр в хронологическом порядке, но формат выглядит следующим образом:
Мы бы хотели, чтобы формат даты был «18 февраля 2019 года», но отображался в фильтре в хронологическом порядке.Спасибо!