You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Unix时间戳实现游戏登录时的时间差计算与提示功能

游戏时间差计算实现方案

核心逻辑

  • 时间戳转换:将服务器返回的Unix时间戳字符串(如"1686311723")转换为可计算的时间戳数字,同时获取当前时间的毫秒级时间戳。
  • 差值计算与场景判断:
    • 当前时间早于开始时间:计算开始时间与当前时间的差值,生成「距离开始」的提示
    • 当前时间介于开始与结束时间之间:计算结束时间与当前时间的差值,生成「距离结束」的提示
    • 当前时间晚于结束时间:返回「游戏已结束」提示
  • 格式标准化:将秒级差值转换为补零的hh:mm:ss格式,确保显示统一(如1小时10分23秒显示为01h:10m:23s)

代码实现(JavaScript)

// 模拟服务器返回的Unix时间戳字符串(对应示例中的"06/09/23 5:15:23 PM"和"06/09/23 10:20:00 PM")
const serverStartTimeStr = "1686311723";
const serverEndTimeStr = "1686328800";

// 转换为毫秒级时间戳(JavaScript时间处理默认用毫秒)
const startTime = parseInt(serverStartTimeStr) * 1000;
const endTime = parseInt(serverEndTimeStr) * 1000;

function getGameTimeTip() {
  const currentTime = Date.now();
  let diffSeconds, prefix, suffix;

  if (currentTime < startTime) {
    diffSeconds = Math.floor((startTime - currentTime) / 1000);
    prefix = "游戏将在";
    suffix = "后开始";
  } else if (currentTime >= startTime && currentTime < endTime) {
    diffSeconds = Math.floor((endTime - currentTime) / 1000);
    prefix = "游戏将在";
    suffix = "后结束";
  } else {
    return "游戏已结束";
  }

  // 格式化秒数为补零的hh:mm:ss格式
  const hours = String(Math.floor(diffSeconds / 3600)).padStart(2, '0');
  const minutes = String(Math.floor((diffSeconds % 3600) / 60)).padStart(2, '0');
  const seconds = String(diffSeconds % 60).padStart(2, '0');

  return `${prefix}${hours}h:${minutes}m:${seconds}s${suffix}`;
}

// 示例测试
// 模拟当前时间为"06/09/23 4:05:00 PM"(对应毫秒级时间戳1686307500000)
Date.now = () => 1686307500000;
console.log(getGameTimeTip()); // 输出:游戏将在01h:10m:23s后开始

// 模拟当前时间为"06/09/23 8:10:00 PM"(对应毫秒级时间戳1686320400000)
Date.now = () => 1686320400000;
console.log(getGameTimeTip()); // 输出:游戏将在02h:10m:00s后结束

关键细节说明

  • 时间戳兼容:服务器返回的Unix时间戳多为秒级,需乘以1000转换为JavaScript默认的毫秒级时间戳,避免计算误差
  • 格式统一:使用padStart(2, '0')强制小时、分钟、秒显示为两位数字,避免出现1h:5m:3s这类不规范格式
  • 边界覆盖:补充了当前时间晚于结束时间的分支,完善场景覆盖

内容的提问来源于stack exchange,提问作者vjtechno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 12:23:11