我在顯示來自后端 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
uj5u.com熱心網友回復:
您可以使用split、map和join輕松實作結果。
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
uj5u.com熱心網友回復:
const addZeros = (date) => {
let [year, month, day] = date.split('/');
month = month.length == 1 ? `0${month}` : month;
day = day.length == 1 ? `0${day}` : day;
return `${year}-${month}-${day}`;
};
const test = (date, formatDate) => {
if ( addZeros(date) == formatDate )
console.log("Success!")
else
console.log(`Error: Expected: ${formatDate}, Receive: addZeros(date)`)
}
test('2021/1/31', '2021-01-31')
test('2021/11/1', '2021-11-01')
uj5u.com熱心網友回復:
我使用這個簡單的方法來添加前導零:
function leadingZeros(n, digitsneeded)
{
return ("00000000000" n).substr(-digitsneeded)
}
// leadingzeros(3, 2) is "03"
// leadingzeros(12, 5) is "00012"
// leadingzeros(1234, 3) is "234" -- Be careful!
無需檢查您是否已經擁有正確的位數。(但是,它會截斷一個“太大”的數字,所以要注意這一點。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/333072.html
標籤:javascript 细绳 算法 日期
