JavaScript, как изменить метку времени для элементов в массиве?

1

У меня есть массив с этой отметкой времени,

var labels = ["2018-12-01T00:00:00.000Z", 
              "2018-12-02T00:00:00.000Z",
              "2018-12-09T00:00:00.000Z", 
              "2018-12-09T00:00:00.000Z",
              "2018-12-18T00:00:00.000Z" 
             ]

Каков наилучший способ иметь массив в формате 2018-12-01. Мне нужно иметь дату для графика

Теги:
arrays
timestamp
element

4 ответа

0

Рассматривали ли вы использовать момент?

function updateTimeFormat(arr) {
  return arr.map(x => {
    return moment(x).format('YYYY-MM-DD');
  });
}
0

Вы должны использовать Array.prototype.map() и создать новый массив с символами, которые вы не хотите вырезать из конца:

var labels = ["2018-12-01T00:00:00.000Z", 
    "2018-12-02T00:00:00.000Z",
    "2018-12-09T00:00:00.000Z", 
    "2018-12-09T00:00:00.000Z",
    "2018-12-18T00:00:00.000Z" 
];

var truncated = labels.map(str => str.slice(0, -14));
console.log(truncated);
0

вы можете достичь того, что вы хотите, используя Array.prototype.map

var labels = ["2018-12-01T00:00:00.000Z", 
              "2018-12-02T00:00:00.000Z",
              "2018-12-09T00:00:00.000Z", 
              "2018-12-09T00:00:00.000Z",
              "2018-12-18T00:00:00.000Z" 
             ];

const newDates = labels.map( label => {
    const newd = new Date(label);
    const fullYear = newd.getFullYear();
    const month = (newd.getMonth() + 1 ).toString();
    const date = (newd.getDate()).toString();
    return '${fullYear}-${month.length > 1 ? month : month.replace(/^/,0)}-${date.length > 1 ? date : date.replace(/^/,0)}';
});

console.log(newDates);
0

Вы можете использовать встроенную Date, так как:

labels.map(label => {
    const date = new Date(label);
    return '${date.getFullYear()}-${date.getMonth()}-${date.getDate()}';
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню