момент.дата и время объединения js
у меня есть четыре поля в форме, некоторые из которых содержат начальную дату и дату окончания (dd / mm / yyyy), а другие содержат время начала и время окончания (hh: ss).
значение этих полей, которые я использую для получения даты и времени с моментом.js, такие как это:
initialdate = moment( $('input#start_date').val(), 'DD/MM/YYYY' );
start_time = moment( $('input#start_time').val(), 'HH:mm');
enddate = moment( $('input#enddate').val(), 'DD/MM/YYYY' );
end_time = moment( $('input#end_time').val(), 'HH:mm');
Я намерен получить разницу в секундах между двумя датами, объединяя дату и время начала и дату и время окончания. Я пытался это сделать, но нет avail:
start = initialdate + start_time;
end = enddate + end_time;
tracker = moment.duration( end.diff(start) ).asSeconds();
3 ответов
сбой пытается объединить значения, проверить что-то вроде этого:
let initialdate = '2016-10-01';
let start_time = '19:04:10';
let enddate = '2016-10-01';
let end_time = '19:04:20';
let datetimeA = moment(initialdate + " " + start_time);
let datetimeB = moment(enddate + " " + end_time);
console.log(datetimeA.format());
console.log(datetimeB.format());
let datetimeC = datetimeB.diff(datetimeA, 'seconds');
console.log(datetimeC);
объедините строки даты и времени и проанализируйте их как один, например
var date = '23/02/2017';
var time = '15:42';
var dateTime = moment(date + ' ' + time, 'DD/MM/YYYY HH:mm');
console.log(dateTime.format('YYYY-MM-DD HH:mm'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
гораздо более чистое решение IMO-использовать момент hour
и minute
геттеры и сеттеры.
let a = moment()
let b = moment().add(3, 'hour').add(37, 'minute') //b is the time portion
a.hour(b.hour()).minute(b.minute())