JavaScript, как изменить метку времени для элементов в массиве? - PullRequest
0 голосов
/ 19 декабря 2018

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

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.Мне нужно иметь дату для графика

Ответы [ 4 ]

0 голосов
/ 19 декабря 2018

вы можете достичь того, что вы хотите, используя 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 голосов
/ 19 декабря 2018

Вы должны использовать 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 голосов
/ 19 декабря 2018

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

labels.map(label => {
    const date = new Date(label);
    return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;
}
0 голосов
/ 19 декабря 2018

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

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