javascript,如何更改数组中元素的时间戳?

javascript, how to change timestamp for elements in array?

我有这个时间戳的数组,

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 的数组的最佳方法是什么。我需要图表的日期

您是否考虑过使用 moment

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);

您可以使用内置的 Date,如下所示:

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

你可以通过使用 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);