我正在尝试从这种格式转换我的数组
ka_layers2 = ["1-05-2019","2-05-2019" ........,"15-05-2019",.."27-05-2019"]
对于这样的事情,
"01-05-2019","02-05-2019"
这是我的代码
for(i = 0; i < ka_layers2.length; i++){
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var d = new Date(ka_layers2[i]);
var day = console.log("0"+d.getDate()).slice(-2);
console.log(day);
ka_layers2arr.push(day + '-' + months[d.getUTCMonth()] + '-' + d.getUTCFullYear());
}
但这给我带来了"Cannot read property 'slice' of undefined"
的问题
我正在尝试这个问题中提到的答案。 Javascript添加前导零到日期
使用regex
/b(d)b/g
演示
let dates = ["1-05-2019", "2-05-2019", "15-05-2019", "27-05-2019"]
let result = dates.map(date => date.replace(/b(d)b/g, '0$1'))
console.log(result)
您可以拆分字符串,用所需的零填充部分并将部分连接回单个字符串。
var array = ["1-05-2019", "2-05-2019", "15-5-200", "27-05-2019"],
result = array.map(s => s.split('-').map((v, i) => v.padStart([2, 2, 4][i], '0')).join('-'));
console.log(result);
ka_layers2 = ["1-05-2019","2-05-2019", "15-05-2019", "27-05-2019"];
for(i = 0; i < ka_layers2.length; i++){
if (ka_layers2[i].indexOf("-") === 1) {
ka_layers2[i] = "0" + ka_layers2[i];
}
}
console.log(ka_layers2);
您可以在-
上拆分并检查第一部分的长度是否小于 2,而不是添加前导零,否则保持原样,然后与-
连接
let arr = ["1-05-2019", "2-05-2019", "15-05-2019", "27-05-2019"]
let getYearsWithZero = (str) => {
let [date, ...rest] = str.split('-')
date = date.length < 2 ? '0' + date : date
return [date, ...rest].join('-')
}
arr.forEach(v => console.log(getYearsWithZero(v)))
另一种方法是使用替换
let arr = ["1-05-2019", "2-05-2019", "15-05-2019", "27-05-2019"]
let getYearsWithZero = (str) => {
return str.replace(/^([^-]+)/, (m, g1) => g1.length < 2 ? "0" + g1 : g1)
}
arr.forEach(v => console.log(getYearsWithZero(v)))
注意:-上述方法只是更改日期,如果您需要对日期的所有部分使用相同的功能,则可以相应地扩展
感谢所有的答案。我也尝试过这样的东西,它奏效了。
for(i = 0; i < ka_layers2.length; i++){
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var d = new Date(ka_layers2[i]);
var day = "0"+d.getDate()
var new_day = day.slice(-2);
ka_layers2arr.push(new_day + '-' + months[d.getUTCMonth()] + '-' + d.getUTCFullYear());
}