Ошибка при формировании даты с функцией - PullRequest
0 голосов
/ 21 января 2020

У меня есть функция, которая принимает дату и форматирует ее. Он работает для таких времен, как «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;
    }

1 Ответ

1 голос
/ 21 января 2020

Вы можете использовать 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, поскольку в каждом приложении есть много вещей, связанных с манипулированием датами, форматирование и т. Д. c. но это зависит от вашего проекта.

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...