Javascript检查从客户端到服务器的时间是否介于两小时之间

pbwdgjma  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(170)

我需要知道一个小时是否在两个小时之间,为此我有以下算法:

const startHour = dayjs( startTime ).hour();
const startMinute = dayjs( startTime ).minute();

const endHour = dayjs( endTime ).hour();
const endMinute = dayjs( endTime ).minute();

filteredData = data.filter( ( item ) => {

    const hour = dayjs.unix( item.generatedAt ).hour();
    const minute = dayjs.unix( item.generatedAt ).minute();

    if ( hour >= startHour && hour <= endHour ) {
        if ( hour === startHour && minute < startMinute ) {
            return false;
        }
        if ( hour === endHour && minute > endMinute ) {
            return false;
        }
        return true;
    }

    return false;

} );

问题是,我的客户机使用的是GMT-4,而服务器使用的是UTC,所以如果我的客户机选择了一个时间,比如22:00 p.m.,那么服务器上的这个时间就是2:00 am,所以条件将为false。
我该如何纠正这个错误?
我在使用dayjs图书馆。

ccrfmcuu

ccrfmcuu1#

你应该调整时区为这时间从服务器象下面:

const startHour = dayjs( startTime ).tz("UTC").hour();
const startMinute = dayjs( startTime ).tz("UTC").minute();

const endHour = dayjs( endTime ).tz("UTC").hour();
const endMinute = dayjs( endTime ).tz("UTC").minute();

相关问题