问题
Does momentjs provide any option to set time with particular time ?
var date = "2017-03-13";
var time = "18:00";
var timeAndDate = moment(date).startOf(time);
console.log(timeAndDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
回答1:
Moment.js does not provide a way to set the time of an existing moment through a string. Why not just concatenate the two:
var date = "2017-03-13";
var time = "18:00";
var timeAndDate = moment(date + ' ' + time);
console.log(timeAndDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
Alternatively, you can use two Moment objects and use the getters and setters. Although a far more verbose option, it could be useful if you can't use concatenation:
let dateStr = '2017-03-13',
timeStr = '18:00',
date = moment(dateStr),
time = moment(timeStr, 'HH:mm');
date.set({
hour: time.get('hour'),
minute: time.get('minute'),
second: time.get('second')
});
console.log(date);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
回答2:
Just incase anyone is wondering how to set the time on a Date Object, here's how I did it:
const dateObj = new Date();
const dateStr = dateObj.toISOString().split('T').shift();
const timeStr = '03:45';
const timeAndDate = moment(dateStr + ' ' + timeStr).toDate();
回答3:
var timeAndDate = moment(date).add(moment.duration(time))
When you have separated string for date and time you can parse first as date and second as duration and just add them. This should create moment
with proper date and time
来源:https://stackoverflow.com/questions/42515588/how-to-set-time-with-date-in-momentjs