Объедините строку даты и времени в одну дату с помощью javascript

У меня есть datepicker, возвращающий строку даты, а timepicker возвращает только строку времени.

Как мне объединить их в одну дату javascript?

Я думал, что нашел решение в Date.js. Примеры показывают метод at( ), но я не могу найти его в библиотеке...

Ответы

Ответ 1

Вы можете настроить свой указатель даты так, чтобы он возвращал такой формат, как YYYY-mm-dd (или любой другой формат, который поддерживает Date.parse), и вы можете построить строку в таймере:

 var dateStringFromDP = '2013-05-16';

 $('#timepicker').timepicker().on('changeTime.timepicker', function(e) {
    var timeString = e.time.hour + ':' + e.time.minute + ':00';
    var dateObj = new Date(datestringFromDP + ' ' + timeString);
  });

javascript объект Date принимает строку в качестве параметра конструктора

Ответ 2

Объедините дату и время в строку так:

1997-07-16T19:20:15

Тогда вы можете разобрать это так:

Date.parse('1997-07-16T19:20:15');

Вы также можете использовать момент .js или что-то подобное.

Ответ 3

Для обычного JavaScript:

combineDateAndTime = function(date, time) {
    timeString = time.getHours() + ':' + time.getMinutes() + ':00';

    var year = date.getFullYear();
    var month = date.getMonth() + 1; // Jan is 0, dec is 11
    var day = date.getDate();
    var dateString = '' + year + '-' + month + '-' + day;
    var combined = new Date(dateString + ' ' + timeString);

    return combined;
};

Ответ 4

Вы можете сцепить дату и время, а затем использовать момент, чтобы получить datetime

const date = '2018-12-24';
const time = '23:59:59';

const dateTime = moment('${date} ${time}', 'YYYY-MM-DD HH:mm:ss').format();

Ответ 5

Пример Дэвида с небольшими изменениями:

function CombineDateAndTime(date, time) {
    var timeString = time.getHours() + ':' + time.getMinutes() + ':00';
    var ampm = time.getHours() >= 12 ? 'PM' : 'AM';
    var year = date.getFullYear();
    var month = date.getMonth() + 1; // Jan is 0, dec is 11
    var day = date.getDate();
    var dateString = '' + year + '-' + month + '-' + day;
    var datec = dateString + 'T' + timeString;
    var combined = new Date(datec);

    return combined;
};