假设我创建了一个游戏,开始时间是“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 字符串形式来自服务器。
您需要做的就是创建一个函数,该函数采用三个属性(例如 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
}