首页 > 解决方案 > 如何将前面的“0”添加到小于 10 的天数和月数

问题描述

我在显示来自后端 API 的数据时遇到了一些问题,因为传入的日期格式不正确。

目前,如果日期和月份数字小于 10,则输入前不带“0”的数字。例如,9应该是09

所有传入日期均采用以下格式:year/month/day.

对于小于 10 的数字,如何将日期转换为前面有零的格式?

我当前的代码:

let date = '2021/1/31';

const addZeros = (date) => {
  const year = date.split('/')[0];
  const month = date.split('/')[1];
  const day = date.split('/')[2];

  return `${year}-${month}-${day}`;
};

console.log(addZeros(date));

测试:

2021/9/14--> 2021/09/14

2021/1/7--> 2021/01/07

2021/10/17--> 2021/10/17

标签: javascriptstringalgorithmdate

解决方案


您可以使用splitmapjoin轻松实现结果。

function convertDate(str) {
  return str
    .split("/")
    .map((s) => (s < 10 ? `0${s}` : s))
    .join("/");
}

console.log(convertDate("2021/9/14")); //--> 2021/09/14
console.log(convertDate("2021/1/7")); //--> 2021/01/07
console.log(convertDate("2021/10/17")); //--> 2021/10/17


推荐阅读