-1

需要一些帮助来增加当前时间的额外时间

currentTime= new Date(); 
var hours2 = currentTime.getHours() + 4;
var minutes2 = currentTime.setMinutes(currentTime.getMinutes() + 30);

但是它输出为: 15:1455880112692PM 并且似乎没有增加 4.5 小时?有人对此有任何想法吗?

4

4 回答 4

2

那是因为你没有得到分钟,你得到的是 Date 对象。该setMinutes方法不返回分钟,它返回 Date 对象本身。将 Date 对象转换为字符串以显示它会为您提供自纪元以来的时间(以毫秒为单位)。

首先转换时间,以便您得到一个正确的结束时间,而不是像27:93代替04:33.

currentTime = new Date();
currentTime.setHours(currentTime.getHours() + 4);
currentTime.setMinutes(currentTime.getMinutes() + 30);

然后你可以从中得到小时和分钟:

var hours2 = currentTime.getHours();
var minutes2 = currentTime.getMinutes();

您可以添加 270 分钟,而不是添加 4 小时 30 分钟:

currentTime = new Date();
currentTime.setMinutes(currentTime.getMinutes() + 270);
于 2012-09-17T10:17:55.227 回答
1

我对出了什么问题有一些想法:

currentTime= new Date(); 
var hours2 = currentTime.getHours() + 4;//doesn't call the setHours method
var minutes2 = currentTime.setMinutes(currentTime.getMinutes() + 30);//works fine for me

所以

currentTime= new Date(); 
var hours2 = currentTime.setHours(currentTime.getHours() + 4);//doesn't call the setHours method
var minutes2 = currentTime.setMinutes(currentTime.getMinutes() + 30);//works fine for me

可以正常工作,但是,您可以在单行中执行此操作:

currentTime.setMinutes(currentTime.getMinutes() + 270);
//or in seconds:
currentTime.setSeconds(currentTime.getSeconds() + 270*60);//16200 === 4.5 hrs
//or miliseconds:
currentTime.setTime(currentTime.getTime() + 270*60000);//16200000 === 4.5 hrs
于 2012-09-17T10:18:48.090 回答
0

你从不设定时间。尝试:

currentTime= new Date(); 
currentTime.setHours(currentTime.getHours() + 4);
currentTime.setMinutes(currentTime.getMinutes() + 30);
于 2012-09-17T10:15:36.147 回答
0

试试这个我真的不明白你遇到的问题是什么? http://jsfiddle.net/H9edz/

currentTime= new Date(); 
var hours2 = currentTime.getHours() + 4;
var minutes2 = currentTime.setMinutes(currentTime.getMinutes() + 30);
document.write("Ending Time: " + currentTime);
document.write("<br/>");
document.write("Ending Minute: " + currentTime.getMinutes());
document.write("<br/>");
var now = new Date();
now.setMinutes(now.getMinutes() + 30);
document.write("Example Time - From Post:" + now)

​</p>

于 2012-09-17T10:22:19.393 回答