JS 日期不以前导 0 开头 - 可能重复的问题

  • 本文关键字:问题 开头 日期 JS javascript
  • 更新时间 :
  • 英文 :


我正在尝试从这种格式转换我的数组

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

最新更新