Объединить значение даты и времени

Мне нужно объединить значение даты и времени, чтобы сделать одно значение, представляющее дату и время в JavaScript.

спасибо Дэниел

8.11.2009 20:01:42
Какой формат или тип объекта является исходным значением даты и времени?
stpe 8.11.2009 20:06:39
В каком формате в данный момент находятся дата и время, и какой формат вы хотите получить? Собственный объект Date () Javascript - это datetime, вы можете создать экземпляр, используя информацию о параметрах здесь: developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/… . Вы можете использовать стороннюю библиотеку, такую ​​как datejs.com, чтобы упростить ее отображение в удобочитаемом формате.
Ben Regenspan 8.11.2009 20:10:35
оба значения (дата и время) представлены в строковом формате. желаемый результат (месяц-день-год чч: мм: сс)
danielea 8.11.2009 22:58:00
4 ОТВЕТА
РЕШЕНИЕ

Предполагая, что «дата» является строкой даты, а «время» является строкой времени:

// create Date object from valid string inputs
var datetime = new Date(date+' '+time);

// format the output
var month = datetime.getMonth()+1;
var day = datetime.getDate();
var year = datetime.getFullYear();

var hour = this.getHours();
if (hour < 10)
    hour = "0"+hour;

var min = this.getMinutes();
if (min < 10)
    min = "0"+min;

var sec = this.getSeconds();
if (sec < 10)
    sec = "0"+sec;

// put it all togeter
var dateTimeString = month+'/'+day+'/'+year+' '+hour+':'+min+':'+sec;
4
12.11.2009 17:10:23
1. Объект даты javascript будет делать некоторые забавные вещи при разборе. Например, 11:70 будет интерпретироваться как 12:10. 2. Полученное значение даты и времени будет находиться в часовом поясе браузера. 3. Если ввод недействителен, isNaN (datetime.getTime ()) == true
Ed. 10.11.2009 18:23:33
Правда по всем пунктам. Однако OP не упомянул о проверке входных данных, поэтому предполагается, что собранные значения даты и времени являются действительными строковыми представлениями дат и времени.
jonthornton 12.11.2009 16:58:51
не волнуйтесь, проверка никогда не является проблемой для разработчиков ... это ошибка пользователя, если он предоставляет неверные данные ...
user3791372 26.10.2017 15:32:12

В зависимости от типа исходного значения даты и времени, есть несколько различных подходов к этому.

Объект Date (который имеет дату и время) может быть создан несколькими способами.

birthday = new Date("December 17, 1995 03:24:00");
birthday = new Date(1995,11,17);
birthday = new Date(1995,11,17,3,24,0);

Если исходная дата и время также являются объектами типа Date, вы можете использовать getHours (), getMinutes () и т. Д., Чтобы извлечь нужные значения.

Для получения дополнительной информации см. Центр разработчиков Mozilla для объекта Date .

Если вы предоставите более подробную информацию в своем вопросе, я могу отредактировать ответ, чтобы он был более конкретным.

0
8.11.2009 20:10:20
извините за недостаточную информацию. Я использую сборщик данных, чтобы позволить пользователю выбрать дату, которая представлена ​​в виде: exp: 01.01.2009. Значение времени - это просто текстовое поле, которое позволяет пользователю ввести время в этом формате: чч: мм.
danielea 8.11.2009 20:16:02
@danielea: 1/1/2009это неоднозначно month-day-year, или day-month-year?
CMS 8.11.2009 21:22:15
это (месяц-день-год). Кроме того, конечные результаты должны быть в следующем формате: (месяц-день-год чч: мм: сс), а затем они должны быть в кодировке URLE
danielea 8.11.2009 22:55:17

Я не мог заставить принятый ответ работать, так что использовал moment.js

date = moment(selected_date + ' ' + selected_time, "YYYY-MM-DD HH:mm");

  date._i   "11-06-2014 13:30"
4
2.06.2014 20:38:32

Работать со строками - это весело и все, но давайте предположим, что у вас есть две даты и вам не нравится полагаться на строки.

function combineDateWithTime(d, t)
{
   return new Date(
    d.getFullYear(),
    d.getMonth(),
    d.getDate(),
    t.getHours(),
    t.getMinutes(),
    t.getSeconds(),
    t.getMilliseconds()
    );
}

Тестовое задание:

var taxDay = new Date(2016, 3, 15); // months are 0-indexed but years and dates aren't.
var clockout = new Date(0001, 0, 1, 17);
var timeToDoTaxes = combineDateWithTime(taxDay, clockout);
// yields: Fri Apr 15 2016 17:00:00 GMT-0700 (Pacific Daylight Time)
2
30.03.2016 18:59:05