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

求推荐适用于聊天机器人的Node.js替代自然日期解析器

Node.js自然日期解析器替代方案

针对聊天机器人场景下的多样化日期查询需求,以下几个工具可以替代chrono-node,适配不同的使用场景:

1. @nlpjs/entity-date

专为对话场景设计的日期实体提取模块,能精准识别口语化的日期表述(如「昨天下午3点」「下周三」「上个月最后一天」),支持多语言,和聊天机器人的适配度极高。

用法示例:

const { EntityDate } = require('@nlpjs/entity-date');

const dateExtractor = new EntityDate();
const result = dateExtractor.extract('请展示下周一的销售数据', 'zh');
console.log(result);
// 返回包含解析出的日期范围、具体时间的实体对象

2. date-fns + date-fns-parse-natural

date-fns是活跃维护的轻量日期处理库,搭配date-fns-parse-natural插件可实现自然语言日期解析,生态完善,灵活性强,还能结合date-fns-tz处理时区问题。

用法示例:

const parseNatural = require('date-fns-parse-natural');
const { format } = require('date-fns');

const parsedDate = parseNatural('昨天晚上8点');
console.log(format(parsedDate, 'yyyy-MM-dd HH:mm'));
// 输出示例:2024-05-20 20:00

3. natural-date

轻量级自然语言日期解析库,专注处理日常模糊/相对日期表述(如「3天前」「明年春节」),体积小巧,适合对包大小敏感的项目。

用法示例:

const naturalDate = require('natural-date');

const targetDate = naturalDate.parse('三个月后的第一个工作日');
console.log(targetDate.toISOString());

4. moment-parseformat(注意:moment已进入维护模式)

若项目已依赖moment.js,moment-parseformat可辅助解析自然语言日期,支持自动识别日期格式与部分口语化表述,但因moment不再维护,仅推荐作为存量项目的过渡方案。

用法示例:

const moment = require('moment');
require('moment-parseformat');

const date = moment('下周五下午');
console.log(date.format('YYYY-MM-DD HH:mm'));

内容的提问来源于stack exchange,提问作者sharon 2ndMail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:53:19