Может кто-нибудь объяснить мне, почему переменные start и end выводят на консоль различные значения для этих регистраторов?
Я получаю распечатку:
start1 = пн 17 февраля 2020 10:00:00 GMT + 0100 (центральноевропейское стандартное время)
end1 = пн 17 февраля 2020 11:30:00 GMT + 0100 (центральное Стандартное европейское время)
start2 = пн 17 февраля 2020 г. 11:30:00 GMT + 0100 (центральноевропейское стандартное время)
end2 = пн 17 февраля 2020 г. 11:30:00 GMT + 0100 (центральноевропейское стандартное время)
Хочу добавить, что представленный мною код, конечно, каким-то методом, а имена start и end не мешают другим именам переменных.
let start = this.service.getDateTime(
eventFromUi.start_date,
eventFromUi.start_time_hour,
eventFromUi.start_time_minute
);
console.log("start1 = " + start);
let end = this.service.getDateTime(
eventFromUi.start_date,
eventFromUi.end_time_hour,
eventFromUi.end_time_minute
);
console.log("end1 = " + end);
console.log("start2 = " + start);
console.log("end2 = " + end);
РЕДАКТИРОВАТЬ:
Метод getDateTime () возвращает объект Typeb типа ootb Date.
Я использовал Chrome отладчик, чтобы разобраться в этом, и я вижу, что когда я впервые выполняю метод getDateTime (), я получаю значение Пн 17 февраля 2020 10:00:00 GMT + 0100 (Центрально-европейский стандарт Время) возвращено и назначено для start .
Затем метод getDateTime () выполняется снова и возвращает значение Пн 17 февраля 2020 11:30:00 GMT + 0100 (Центрально-европейское стандартное время) , и это значение присваивается обоим переменные start и end .
Как это происходит?
EDIT2:
Функция getDateTime:
getDateTime(dateWithoutTime: Date, hour: number, minute: number): Date {
let date = dateWithoutTime;
console.log(date);
console.log(hour);
console.log(minute);
date.setHours(hour);
date.setMinutes(minute);
return date;
}