У меня есть массив с этой отметкой времени,
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. Мне нужно иметь дату для графика
Рассматривали ли вы использовать момент?
function updateTimeFormat(arr) {
return arr.map(x => {
return moment(x).format('YYYY-MM-DD');
});
}
Вы должны использовать 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);
вы можете достичь того, что вы хотите, используя 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);
Вы можете использовать встроенную Date
, так как:
labels.map(label => {
const date = new Date(label);
return '${date.getFullYear()}-${date.getMonth()}-${date.getDate()}';
}