【发布时间】:2019-06-18 07:32:05
【问题描述】:
我正在尝试以 24 小时的格式添加时间,例如“23:59:59”。例如,我需要添加 2.5 小时,以便时间滚动到第二天并显示为“02:30:00”。
到目前为止,我所尝试的方法一直有效,直到达到“23:59:59”为止。如果它超过'23:59:59',我需要显示第二天的时间。到目前为止,这是我尝试过的:
var time = $('#starttime').val().split(':');
var d = new Date();
d.setHours(+time[0]);
d.setMinutes(time[1]);
d.setSeconds(time[2]);
var time2 = $('#endtime').val().split(':');
var endtimeval = new Date();
endtimeval.setHours(+time2[0]);
endtimeval.setMinutes(time2[1]);
endtimeval.setSeconds(time2[2]);
var str = d.getHours() + parseInt($('#noofhours').val()) + ":" + time2[1] + ":" + time2[2];
$('#endtime').val(str);
【问题讨论】:
-
与其手动执行类似的操作,不如研究一下 date-fns 之类的库选项,例如
-
+1 表示@raphinesse 评论。我使用 Moment.js,它使所有这类事情变得容易,而且你不太可能在路上遇到错误或边缘情况
-
你能帮我用普通的javascript做同样的事情吗? .我没有使用任何第三方 js 文件和 CDN 的状态。希望你能理解。
-
请至少为您的代码创建一个minimal reproducible example。例如,现在我不知道你所说的这 2.5 个小时究竟应该藏在哪里。
-
(虽然 setHours 可能无法正确处理诸如 2.5 之类的值 - 因此使用该方法设置分钟可能会更容易,取而代之的是 2.5 * 60 作为值。)
标签: javascript datetime time time-format