使用javascript添加30分钟时间 - 无法正常工作

时间:2012-09-17 10:10:33

标签: javascript

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

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

然而它输出为:15:1455880112692PM并且似乎没有增加4.5小时?有人对此有什么想法吗?

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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

答案 2 :(得分:0)

你永远不会设定小时数。尝试:

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

答案 3 :(得分: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)