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

如何使用Moment.js避免秒数超60导致MySQL存储错误?

解决Moment.js生成无效datetime(秒数超60)导致MySQL插入失败的问题

你的问题出在Moment.js的格式字符串写错了:

  • 你用了MM表示分钟,但MM在Moment里是月份(01-12);
  • 你用了SS表示秒,但SS是毫秒的前两位(00-99);
    这就导致当毫秒值大于等于60时,生成的"秒数"会超过59(比如你遇到的69),而MySQL的datetime类型只接受00-59的秒数,所以触发格式错误。

修正方案

把格式字符串中的MM改成mm(表示分钟),SS改成ss(表示秒):

const currentDate = moment().format("YYYY-MM-DD HH:mm:ss");
const onlyDate = moment(currentDate).format("YYYY-MM-DD");

formData.append("comment", comments.value);
formData.append("fecha", currentDate);

formData.append("idTesis", idTesisParam);
formData.append("user", userId);
formData.append("onlyDate", onlyDate);
formData.append("estado", statusTesis);
formData.append("aprobado", aprobado);

另外,onlyDate可以直接用moment().format("YYYY-MM-DD")生成,没必要先转成currentDate再解析,能减少不必要的计算:

const onlyDate = moment().format("YYYY-MM-DD");

关键格式区分(Moment.js)

  • MM:月份(01-12)
  • mm:分钟(00-59)
  • SS:毫秒(00-99)
  • ss:秒(00-59)
  • HH:24小时制小时(00-23)
  • hh:12小时制小时(01-12)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:25:57