我有一个函数,它接受日期并格式化它。它适用于“10.33”和“9.33”等时间,
但对于“10.09”,它错误地显示“10.9”,并且“0”消失。任何人都可以看到函数中的错误吗?我可能瞎了..
public static formatDate(date: Date): string {
const year: string = date.getFullYear().toString();
const month: string = date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1).toString();
const day: string = date.getDate() < 10 ? "0" + date.getDate() : date.getDate().toString();
return year + "-" + month + "-" + day;
}
最佳答案
您可以使用String.prototype.padStart
/*
public static formatDate(date: Date): string {
const year: string = date.getFullYear().toString();
const month: string = (date.getMonth() + 1).toString();
const day: string = date.getDate().toString();
return `${year}-${month.padStart(2, 0)}-${day.padStart(2, 0)}`;
}
*/
const formatDate = date => {
const year = date.getFullYear().toString();
const month = (date.getMonth() + 1).toString();
const day = date.getDate().toString();
return `${year}-${month.padStart(2, 0)}-${day.padStart(2, 0)}`;
}
console.log(formatDate(new Date()));
我总是更喜欢 momentjs
,因为每个应用程序都有很多与日期操作、格式化等相关的内容,但这取决于您的项目。
const date = new Date();
console.log(moment(date).format('YYYY-MM-DD'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
关于javascript - 使用函数格式化日期时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59830885/