Добавление часов к существующей дате и получение новой даты через JS - PullRequest
0 голосов
/ 03 июня 2019

У меня есть функция javascript, которая добавляет определенное количество часов к указанной дате и возвращает новую дату следующим образом.

$scope.CalDate = function()
{
var preDate = "2019-06-20 21:30";
var formatDate = new Date(preDate );
var diffHours = 2.30;
var newDate = new Date(formatDate.getTime() + (diffHours*1000*60*60));
return newDate;
}

Фактический ответ должен быть Ср. 21 июня 2019 00: 00: 00 . Но он возвращает следующий ответ. Чт, 20 июня 2019 г. 23: 48: 00 . Почему это происходит?

Ответы [ 2 ]

2 голосов
/ 03 июня 2019

Вы добавляете 2,3 часа вместо 2,5 часов (2 с половиной)

$scope.CalDate = function()
{
var preDate = "2019-06-20 21:30";
var formatDate = new Date(preDate );
var diffHours = 2.5;//Add 2 and a half hours
var newDate = new Date(formatDate.getTime() + (diffHours*1000*60*60));
return newDate;
}

Чтобы преобразовать 2,3 в правильный множитель, используйте Math.floor(2.3) + (2.3%1)/0.6

$scope.CalDate = function()
{
var preDate = "2019-06-20 21:30";
var formatDate = new Date(preDate );
var diffHours = 2.3;
var actualDiff = Math.floor(diffHours) + (diffHours % 1)/0.6


var newDate = new Date(formatDate.getTime() + (actualDiff*1000*60*60));
return newDate;
}
0 голосов
/ 03 июня 2019

Для добавления часов и минут к дате был использован следующий метод.

$scope.CalDate = function()
{
var preDate = "2019-06-20 21:30";
var formatDate = new Date(preDate );
var diffHours = 2.3;
formatDate.setHours(formatDate.getHours() + 2);
formateDate.setMinutes(formatDate.getMinutes() + 30);
return formateDate;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...