仅从 Datetime Moment.js 对象中提取时间
Posted
技术标签:
【中文标题】仅从 Datetime Moment.js 对象中提取时间【英文标题】:Extract time only from a Datetime Moment.js object 【发布时间】:2017-08-15 10:23:29 【问题描述】:我在下面有 Moment.js 日期对象 marketStartTime
:
我想从上述对象中提取时间(小时、秒和上午/下午)并将其保留为时刻对象(而不仅仅是字符串)。
我在下面想出了一个丑陋的方法:
moment(moment(marketStartTime, TIME_FORMAT).format(TIME_FORMAT), TIME_FORMAT)
我先将时刻转换为时间字符串,然后再将时间字符串转换回时刻。
有没有办法只是从时刻对象中提取时间并将其保留为时刻对象?
【问题讨论】:
moment.duration
,对你的问题没用吗?
@hosar 我不需要时间范围,我只需要一次。我不知道 moment.duration 在这里可以如何帮助我,但是如果您对此有进一步的了解,那就太好了!
@Vtron89 从上述对象中提取时间(小时、秒和上午/下午)并将其保留为时刻对象(而不仅仅是字符串)是什么意思?请注意,时刻对象(如原生 JS 日期)始终表示时间和日期(默认为今天)。
【参考方案1】:
您可以根据日期的开始创建持续时间 我是这样使用的:
var from = (value.clone()).startOf('d');
this.innerValue = m.duration( from: from, to: value );
记得使用 Moment 版本 >2(我使用的是 2.17.1)。从 2.1 版开始,他们改进了对持续时间的支持,请参阅 https://momentjs.com/docs/#/durations/
【讨论】:
【参考方案2】:你可以试试
moment().format("h:mm:ss a")
我正在寻找最直接的方式。 另外,您可以检查您可以使用的格式here:
【讨论】:
以上是关于仅从 Datetime Moment.js 对象中提取时间的主要内容,如果未能解决你的问题,请参考以下文章
仅从控制器通过DateTime对象传递日期。尝试多种方式绑定时间
如何在 C# 中仅从 DateTime 序列化 Xml 日期
Moment.js - 显示选定范围内关于用户时区的历史数据