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

如何基于Moment.js实现按日期格式片段获取对应分段名称?

解决Moment.js格式片段转日期分段名称的问题

确实,Moment.js没有内置方法直接把格式字符串映射到对应的日期分段名称,不过我们可以手动创建一个映射表来实现这个需求,简单又靠谱。

下面是完整的实现函数:

function getFormatName(format) {
  // 创建格式片段到分段名称的映射表,覆盖常见格式变体
  const formatMap = {
    'YYYY': 'years',
    'YY': 'years',
    'MM': 'months',
    'MMM': 'months',
    'MMMM': 'months',
    'DD': 'days',
    'D': 'days',
    'HH': 'hours',
    'H': 'hours',
    'hh': 'hours',
    'h': 'hours',
    'mm': 'minutes',
    'm': 'minutes',
    'ss': 'seconds',
    's': 'seconds',
    'SSS': 'milliseconds',
    'SS': 'milliseconds',
    'S': 'milliseconds'
    // 可根据需求扩展更多格式片段
  };

  // 返回匹配的名称,无匹配则返回null(可自定义默认值)
  return formatMap[format] || null;
}

调用示例:

  • getFormatName('YYYY') → 返回 'years'
  • getFormatName('MM') → 返回 'months'
  • getFormatName('DD') → 返回 'days'
  • getFormatName('HH') → 返回 'hours'
  • getFormatName('mm') → 返回 'minutes'

补充说明:

  • 我把常见的格式变体都加进去了,比如短年份YY、月份缩写MMM、12小时制的hh等,都统一映射到对应的分段名称,覆盖更多使用场景。
  • 如果需要支持其他格式片段,直接在formatMap里添加新的键值对即可,灵活性拉满。
  • 要是传入的格式没有匹配项,函数默认返回null,你也可以改成返回'unknown'这类自定义默认值,完全看你的需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:57:38