javascript - 使用函数格式化日期时出错

标签 javascript reactjs typescript date formatting

我有一个函数,它接受日期并格式化它。它适用于“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/

相关文章:

unit-testing - 基本 react 渲染测试: exists() vs.长度

javascript - 在 typescript 中覆盖继承类中的方法声明

javascript - Typescript,自返回通用

javascript - 递归合并排序函数错误: Cannot read property 'length' of undefined

Javascript 类 JQuery 库

javascript - 超出最大调用堆栈大小,无限循环

javascript - 如何将特定的 imdb ID 复制并添加到另一个州?

javascript - React Router <LINK>如何在 Jest 测试中获取 href 的值

javascript - 使用 TypeScript 声明 Sammy js 设置

javascript - 在 FullCalendar 中传递动态数据时出错