You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在discord.js中简化日期显示为指定格式?

解决Discord.js日期格式化问题

嘿,我来帮你搞定这个日期显示的需求!你现在从Discord.js拿到的是JavaScript原生Date对象的默认字符串,要转换成Saturday June 26, 2016 at 05:23这种清爽的格式,这里有两种实用的方法:

方法一:用JavaScript原生Intl.DateTimeFormat

这个方法不依赖Discord.js的版本,兼容性拉满,还能灵活控制格式:

// 先把你拿到的日期字符串转成Date对象
const targetDate = new Date("Sun Jun 26 2016 05:23:55 GMT+0200 (Central European Daylight Time)");

// 配置格式化选项
const formatter = new Intl.DateTimeFormat('en-US', {
  weekday: 'long',    // 完整星期几(比如Saturday)
  year: 'numeric',    // 四位年份
  month: 'long',      // 完整月份名(比如June)
  day: 'numeric',     // 日期数字
  hour: '2-digit',    // 两位小时
  minute: '2-digit'   // 两位分钟
});

// 先拿到基础格式化结果
const baseFormatted = formatter.format(targetDate);
// 调整成你要的"at"格式(原生默认会用逗号分隔,这里替换一下)
const finalDate = baseFormatted.replace(', ', ' ').replace(', ', ' at ');

console.log(finalDate); // 输出:Saturday June 26, 2016 at 05:23

方法二:用Discord.js自带的Timestamp工具(v13+支持)

如果你的Discord.js版本是v13及以上,官方提供的Timestamp类能更简洁地完成这个需求:

const { Timestamp } = require('discord.js');

// 转成Date对象
const targetDate = new Date("Sun Jun 26 2016 05:23:55 GMT+0200 (Central European Daylight Time)");

// 创建Timestamp实例,直接用自定义格式字符串
const formattedDate = Timestamp.fromDate(targetDate).format('F M d, Y at H:m');

console.log(formattedDate); // 输出:Saturday June 26, 2016 at 05:23

这里的格式占位符对应:

  • F:完整星期几名称
  • M:完整月份名称
  • d:日期数字
  • Y:四位年份
  • H:24小时制的两位小时
  • m:两位分钟

两种方法都能完美达到你的需求,选哪种看你的项目环境啦!

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

火山引擎 最新活动