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

Discord今日、昨日日期格式化规则咨询及网站集成需求

Discord日期格式化逻辑解析与实现方案

嘿,我正好研究过Discord的日期显示逻辑,它的处理逻辑其实挺清晰的,核心是基于用户本地时间,根据目标时间与当前时间的间隔,动态切换显示文案,完全匹配你提到的「UserOne 昨天 17:03」「UserTwo 今天 13:06」这类格式。

核心规则

Discord的日期判断逻辑可以拆解为三个层级:

  • 今日:如果目标时间落在「今天00:00 到 当前时间」的区间内,显示「今天 HH:mm」
  • 昨日:如果目标时间落在「昨天00:00 到 今天00:00」的区间内,显示「昨天 HH:mm」
  • 更早日期:超过昨天的时间,直接显示完整日期+时间(格式会根据用户地区略有调整,比如部分地区用「MM/DD/YYYY」,但核心是日期+时分)

实现思路(以JavaScript为例)

因为你是开发网站,这里给出前端常用的JavaScript实现方案,核心是用Date对象计算时间区间,再匹配对应的显示文案:

function formatDiscordStyleDate(targetDate) {
  const now = new Date();
  // 计算今天0点的时间戳
  const todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate());
  // 计算昨天0点的时间戳
  const yesterdayStart = new Date(todayStart.getTime() - 24 * 60 * 60 * 1000);

  // 辅助函数:格式化时分,确保两位数(比如9:5 → 09:05)
  const formatTime = (date) => {
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    return `${hours}:${minutes}`;
  };

  // 判断时间区间
  if (targetDate >= todayStart) {
    return `今天 ${formatTime(targetDate)}`;
  } else if (targetDate >= yesterdayStart) {
    return `昨天 ${formatTime(targetDate)}`;
  } else {
    // 更早日期:显示完整日期+时间,可根据需求调整格式
    const year = targetDate.getFullYear();
    const month = (targetDate.getMonth() + 1).toString().padStart(2, '0');
    const day = targetDate.getDate().toString().padStart(2, '0');
    return `${year}-${month}-${day} ${formatTime(targetDate)}`;
  }
}

// 测试用例
console.log(formatDiscordStyleDate(new Date(2024, 4, 21, 13, 6))); // 输出:今天 13:06(假设当前为5月21日)
console.log(formatDiscordStyleDate(new Date(2024, 4, 20, 17, 3))); // 输出:昨天 17:03
console.log(formatDiscordStyleDate(new Date(2024, 4, 19, 9, 15))); // 输出:2024-05-19 09:15

额外注意点

  1. 时区适配:上面的代码用的是用户本地时间(getHours/getDate等方法),和Discord的逻辑一致,会自动适配用户所在时区。
  2. 多语言支持:如果你的网站需要多语言,只需要把「今天」「昨天」替换成对应语言的文案即可。
  3. 边界情况处理:比如刚好是今天0点的时间,会被归类为「今天 00:00」;昨天23:59的时间则显示「昨天 23:59」,完全符合Discord的显示逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 03:49:05