我有一个只包含日期的时刻对象,我有一个代表这个时间的字符串
离。 "下午6:00" ," 10:00 AM"
我如何才能将这段时间添加到当下并获得包含日期和时间的新时刻?
答案 0 :(得分:1)
你可以通过使用时刻对象来做到这一点,但是从时间字符串中获取持续时间有点难看。但在此之后,使用moment.add
将时间添加到日期是一件简单的事情:
const date = moment("2017-12-20", "YYYY-MM-DD");
console.log(date.format("MMM Mo, YYYY h:mm a"))
const time = moment.duration(moment("6:00 PM", "h:mm A").format("HH:mm:ss"));
console.log(time) // This is a ISO 8601 duration string
const datetime = date.add(time)
console.log(datetime.format("MMM Mo, YYYY h:mm a"))
<script src="https://momentjs.com/downloads/moment.min.js"></script>
答案 1 :(得分:0)
您可以简单地将moment
对象格式化为字符串并将日期部分与字符串时间部分连接,然后将此字符串重新初始化为moment
对象。
// assume this is your moment object that you had already.
let date = moment('2017-12-05');
// converting it to string
let dateStr = date.format('YYYY-MM-DD');
let timeStr = '10:00 AM'
let dateWithTimeStr = dateStr + ' ' + timeStr;
// reinitialize date to moment again.
let dateWithTime = moment(dateWithTimeStr);
答案 2 :(得分:0)
您可以从特定时间创建时刻实例,并使用getter提取时间信息。然后您可以使用setter相应地调整其他实例:
const d1 = moment('10:00AM', 'h:ma')
const d2 = moment()
console.log(d2.format('h:mm:ss a')) // "5:10:31 pm"
d2.set({
hour: d1.hours(),
minute: d1.minutes(),
second: d1.seconds()
})
console.log(d2.format('h:mm:ss a')) // "10:00:00 am"