如何将日期(无时间)与JavaScript中的当前日进行比较
#javascript #codever #snippets #date

new Date()setHours获取当前日期到0, 0, 0,然后您准备与输入日期进行比较,这是yyyy-MM-dd格式中的字符串

export const isLessThanToday = (input: string): boolean => { //format of input date is YYYY-MM-DD
    const today = new Date();
    today.setHours(0, 0, 0);

    return notEmpty(input) && new Date(input) < today;
};

测试我们可以使用以下开玩笑的测试:

    describe('isLessThanToday > ', () => {
        test.each([
            [null, false],
            [undefined, false],
            ['AXON', false],
            ['1900-01-01', true],
            ['2099-12-12', false], // TODO change this date when in 2099 :)
            [new Date().toISOString().slice(0, 10), false], //today
            [new Date(new Date().setDate(new Date().getDate() - 1)).toISOString().slice(0, 10), true], //yesterday
            [new Date(new Date().setDate(new Date().getDate() - 7)).toISOString().slice(0, 10), true], //one week ago
        ])('given input date %p, it should return %p', (input, expected) => {
            expect(isLessThanToday(input)).toEqual(expected);
        });
    });

请参阅此How to use jest test.each function 了解test.each函数的用法


Codever的âtlivation。使用ðcopy to mine功能将其添加到您的个人片段集合中。

codever Githubâð

的开源