ToolAct

保质期计算器

计算过期日期,管理商品保质期

什么是保质期计算器?

保质期计算器是一个在线工具,帮助您快速计算商品的过期日期或推算生产日期。只需输入生产日期和保质期天数,即可得出准确的过期时间;或输入过期日期反推生产日期。它会同时显示过期日期、剩余天数和新鲜度状态(正常 / 即将过期 / 已过期),方便您快速决定先使用哪个商品。本工具浏览器本地运行,无需上传数据,保护您的隐私安全。计算保质期或到期日时,关键是明确按自然日、工作日、月份还是固定小时计算。食品、药品、合同、证书、优惠券和项目期限,可能对起算日、截止日、时区和取整方式有不同规则。这个工具适合快速获得参考日期,但涉及法律、医疗、财务或正式履约的期限时,仍应回到原始说明和适用规则核对。

使用方法

使用步骤

  1. 选择计算模式:生产日期 → 过期日期,或 过期日期 → 生产日期
  2. 输入日期与保质期天数
  3. 点击「计算」查看结果

结果核对

  • 确认保质期是从生产日期、包装日期、开封日期还是收货日期起算;这些规则不可互换。
  • 对于食品、药品或受监管商品,请以印刷标签和当地规定为最终依据。

使用场景

根据生产日期和保质期计算过期日期输入生产日期、保质期数值及单位(天、月或年),即可得到目标过期日期、剩余天数和新鲜度状态。剩余天数是根据浏览器当前日期计算的,如果设备系统时间不准确,新鲜度状态也会相应偏差,需校正系统时间后才能恢复正确。
从过期日期反推生产日期切换计算模式,根据已知的过期日期和保质期估算生产日期,适合检查包装标签、库存记录或批次文档时使用。请将保质期单位和参考日期一并记录在结果旁边,方便日后理解计算过程。
注意月和年单位的保质期换算差异月份按日历精确相加,并钳制到目标月最后一天(因此 31 Jan + 1 month = 28/29 Feb),年份按 12 个月计算。在丢弃受监管商品前,请与包装上的印刷日期交叉核对,而且受监管类别(婴幼儿配方奶粉、血液制品、处方药等)通常要求原包装上有印刷的批号,而非计算估算值。

技术原理

到期计算是基于生产日期的整数日期算术。正向路径通过向 Date.UTC(y, m, d) 加上整天数(n * 86400000)计算 expiry = production + shelf_life_days,月份/年份则按日历精确相加并钳制到目标月最后一天(31 Jan + 1 month = 28/29 Feb;31 Jan + 30 days = 2 Mar 2025,因为二月有 28 天)。反向路径用相同方式计算 production = expiry - shelf_life_days。为避免午夜附近的夏令时偏移,页面通过 Date.UTC(y, m, d) 将算术锚定到 UTC,并加上整毫秒数(n * 86400000),因为本地时间的 Date.setDate 在跨越夏令时边界时会产生一小时偏移,可能在三月和十一月(美国)或十月(欧盟)的切换日翻转可见日期。

单位直接在日历上相加:月份钳制到目标月最后一天,年份按 12 个月计算,与监管机构采用的日历精确规则一致。《食品法典委员会预包装食品标签通用标准》(CXS 1-1985 修订版)和中国的 GB 7718-2025 规定保质期从生产日期或包装日期起算;药品有效期遵循 ICH Q1A (R2) 稳定性测试指南,打印的有效期取当月最后一天(因此 2024-08-15 生产、保质期 18 个月的药品标注为 2026-02-28,而非 2026-02-15)。剩余天数计数器为 (expiry_utc - now_utc) / 86400000,已过期用 Math.floor 向下取整,距过期时间用 Math.ceil 向上取整;新鲜度分级是阈值比较:remaining < 0 为已过期,0 ≤ remaining ≤ 30 为即将过期,否则为正常。

  • 日期算术:先解析为 年-月-日,锚定到 Date.UTC(y, m, d) 并加上整天数(n * 86400000);月份/年份按日历精确相加并钳制到目标月最后一天。切勿使用本地时间的 Date.setDate——它会跨越夏令时边界并翻转可见日期。
  • 单位处理:月份按日历精确相加并钳制到目标月最后一天(31 Jan + 1 month = 28/29 Feb),年份按 12 个月计算;药品标签遵循 ICH Q1A (R2),打印的有效期取当月最后一天。
  • 剩余天数 = (expiry_utc - now_utc) / 86400000,距到期时间用 Math.ceil、已过期用 Math.floor;阈值:remaining < 0 → 已过期,0 ≤ remaining ≤ 30 → 即将过期,否则正常。
  • 法规依据各异:食品保质期遵循 Codex CXS 1-1985 / GB 7718-2025(从生产或包装日期起算);化妆品使用 PAO(开封后使用期限),从首次使用起算;药品使用 ICH Q1A 稳定性测试日期。
  • 开封后保质期独立于印刷有效期且更短(如橄榄油开封后约 3 个月,而密封保质期为 24 个月);需单独记录开封日期。
  • 浏览器时钟偏差(系统日期配置错误)会偏移新鲜度分级;页面读取 new Date() 而非远程时间源,因此继承客户端的任何时钟误差。

示例

生产日期 2026-01-01 + 730 天 = 2028-01-01

模式:生产日期 -> 到期日
生产日期:2026-01-01
保质期:730 天(2 年)
到期日:2028-01-01
状态:仍在保质期内

药品:18 个月保质期

药品批号:A26-0215
生产日期:2026-02-15
保质期:18 个月(约 546 天)
到期日:2027-08-15
标签备注 - 药品行业惯例:到期日按月末计,
标注日期可能写作 2027-08-31

反向计算:到期日 -> 生产日期

模式:到期日 -> 生产日期
包装上标注的到期日:2028-06-30
保质期:36 个月
生产日期不晚于:2025-06-30
可用于核对供应商提供的生产日期
是否与批号标签一致

食品库存检查

商品:橄榄油 500ml
生产日期:2025-12-01
保质期:24 个月
到期日:2027-12-01
检查:在保质期内;按 FIFO 周转库存,到期前约 30 天可安排打折

常见问题

到期日期是怎么算出来的?

生产日期 + 保质期 = 到期日期。保质期支持按天、月、年填写。按月相加时,如果目标月没有对应的日期,会自动取该月最后一天(例如 1 月 31 日 + 1 个月 = 2 月 28/29 日),这与大多数监管机构对“自生产之日起 X 个月”的解读一致。

剩余天数是从今天开始算的吗?

是的。工具会按本地时区的当前日期,显示剩余的天数。负值表示产品已过期。状态标签(新鲜/临期/已过期)方便你快速分类。

best-before 和 use-by 有什么区别?

best-before(最佳食用日期)是品质指标——超过仍然安全,只是风味或口感可能有所下降。use-by(保质截止日期)是安全指标,过期后食用可能存在健康风险。化妆品和药品上常见的 PAO(开封后使用期限)符号,会在产品开封后覆盖原本印刷的到期日期。

结果有考虑储存条件吗?

没有。印刷的保质期假设按厂家推荐方式储存(阴凉、干燥、密封、冷藏或冷冻)。高温、潮湿和光照会缩短实际保质期,工具无法对此建模,请把计算结果当作上限。

“过期”的食品或药品该怎么处理?

未开封的罐头和干货稍过最佳食用日期通常没问题——观察一下外观和气味即可。乳制品、肉类和鱼类一旦超过保质截止日期就应丢弃。过期药品可能失效,部分还会变得不安全,重要治疗时不要依赖它们。

可以同时跟踪多个产品吗?

本计算器一次只处理一个商品。如需持续管理库存,请使用专门的库存管理应用或简单的电子表格。

我的数据会被上传吗?

不会。计算完全在您的浏览器中运行。不会上传任何内容,也不会在会话之间保存任何数据。