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

如何从Moment对象中获取_i属性存储的原始输入时间值

问题根因

时间丢失是因为Moment解析时采用了YYYY-MM-DD格式(对应_f字段值),仅匹配了日期部分,自动截断了后续时间内容,导致_d属性的时间被重置为00:00。_i是Moment存储的原始输入字符串,所以保留了完整时间。

推荐解决方式(优先使用)

Moment所有下划线开头的属性都是内部私有变量,不属于公开API,版本更新时逻辑可能发生变化,不建议直接访问。你只需要在解析时明确指定和输入匹配的完整格式,就能正常解析出时间:

// 传入匹配原始字符串的格式
const date = moment(data.xxxxxStartDate, 'YYYY-MM-DDTHH:mm:ss');
this.xxxxxStartDate = date.format('Do MMMM YYYY');
this.xxxxxStartDateTime = date.format('HH:mm');

如果服务端返回的是标准ISO 8601格式字符串,也可以直接调用内置的ISO格式解析:

const date = moment(data.xxxxxStartDate, moment.ISO_8601);

直接获取_i值的方法

如果特殊场景必须取原始输入值,直接访问对应属性即可:

const rawTimeStr = moment(data.xxxxxStartDate)._i;

该方法依赖Moment内部实现,生产环境不推荐长期使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:54:02