计算start_time和current_time以及end_time和current_time之间的差异

问题描述 投票:0回答:1

假设我创建了一个游戏,开始时间是“06/09/23 5:15:23 PM”,结束时间是“06/09/23 10:20:00 PM”。当用户在“06/09/23 4:05:00 PM”登录之前登录,然后向用户显示消息,游戏在 01h:10m:23s 开始。如果用户在“06/09/23 8:10:00 PM”登录,则向用户显示游戏将在 02h:10m:23s 后关闭的消息。开始时间和结束时间将以 unixtime 字符串形式来自服务器。

javascript reactjs date momentjs
1个回答
0
投票

您需要做的就是创建一个函数,该函数采用三个属性(例如 currentTime、startTimeUnix 和 endTimeUnix)来确定时间差并根据您获得的持续时间设置消息。

function TimeDifferenceMessage({ currentTime, startTimeUnix, endTimeUnix }) {
    const startDateTime = moment.unix(startTimeUnix);
    const endDateTime = moment.unix(endTimeUnix);
    const currentDateTime = moment(currentTime, "DD/MM/YY h:mm:ss A");
    let message;
    if (currentDateTime.isBefore(startDateTime)) {
        const duration = moment.duration(startDateTime.diff(currentDateTime));
        message = `Game starts in ${whateverTimeYouMention}`;
    } else if (currentDateTime.isBetween(startDateTime, endDateTime)) {
        const duration = moment.duration(endDateTime.diff(currentDateTime));
        message = `Game closes in ...`;
    } else {
        message = "Game has ended.";
    }

    // return the message
}
© www.soinside.com 2019 - 2024. All rights reserved.