我正在使用moment.js并希望使用新的用户输入时间更新日期时间字符串 . 日期没有改变,只有时间 . 没有时区变化,只是小时和分钟值可能已经改变 .
我如何采取这样的字符串并将其转换为时间不同?
我希望这是:
const dateTimeString = '2017-11-14T16:04:54.0086709-06:00'
const newDateTimeString = (
moment(dateTimeString)
.changeTime('05:20 PM')
.format()
)
// newDateTimeString === '2017-11-14T17:20:00.0086709-06:00'
3 回答
如果用户输入的时间格式为
13:00
,您可以这样做:使用https://momentjs.com/docs/#/get-set/hour/和https://momentjs.com/docs/#/get-set/minute/
如果它使用PM和AM系统进行格式化,您可以使用相同的方法,但需要进行一些解析,以确定它是上午5点还是下午 .
没有像
changeTime
这样的内置函数,您可以使用set编写自己的函数 .您可以使用moment.fn添加
changeTime
您可以使用moment(String, String)创建"time to add"值的临时对象,然后使用set(Object(String, Int))和hours()和minutes()等getter .
这是一个实时样本:
一种可能的方法是使用时刻获取日期,然后将其与您在另一个
moment()
调用中的自定义时间值组合,如下所示: