Javascript 将小时数添加到现有日期并通过JS获得新日期
我有一个javascript函数,它向提供的日期添加一定的小时数,并返回新的日期,如下所示Javascript 将小时数添加到现有日期并通过JS获得新日期,javascript,date,Javascript,Date,我有一个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 new
$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;
}
实际答案应为2019年6月21日星期三00:00:00。但它返回以下答案2019年6月20日星期四23:48:00。为什么会发生这种情况?您增加了2.3小时,而不是2.5小时(2.5小时) 要将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;
}
您将增加2.3小时,而不是2.5小时(2.5小时) 要将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;
}
要将小时和分钟添加到日期,请使用以下方法
$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;
}
要将小时和分钟添加到日期,请使用以下方法
$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;
}
这可能会有帮助,因为你增加了2.3小时,而不是2.5小时。您的差异必须为2.5请参见
新日期(“2019-06-20 21:30”)
在某些实现中返回无效日期。这可能会有所帮助,因为您要添加2.3小时,而不是2.5小时。您的差异必须为2.5请参见新日期(“2019-06-20 21:30”)
在某些实现中返回无效日期。我使用小时和分钟获取差异小时数。因此,它给出了as 2.3。我该怎么办?@tharindu你可以简单地按比例乘以它?Math.floor(2.3)+(2.3%1)/0.6-用存储的变量替换2.3注意Javascript浮点计算,因此使用十进制小时代替小时、分钟、秒可能会产生小错误,导致令人烦恼的不准确结果。如果“2.3”
应该是“2:30”
,那么就这样对待它,不要把它转换成2.5
,希望一切正常。正确的@tharindu它转换成2.499,这足够接近2.5。如果您使用的是文字2.3,请将其更改为2.5。如果您正在计算2.3,请发布代码,说明您如何获得该数字。使用小时和分钟获得diffHours。因此,它给出了as 2.3。我该怎么办?@tharindu你可以简单地按比例乘以它?Math.floor(2.3)+(2.3%1)/0.6-用存储的变量替换2.3注意Javascript浮点计算,因此使用十进制小时代替小时、分钟、秒可能会产生小错误,导致令人烦恼的不准确结果。如果“2.3”
应该是“2:30”
,那么就这样对待它,不要把它转换成2.5
,希望一切正常。正确的@tharindu它转换成2.499,这足够接近2.5。如果您使用的是文字2.3,请将其更改为2.5。如果你是在计算2.3,请张贴代码说明你是如何得到这个数字的