JS 中开始时间加小时数等于结束时间,怎么改这个代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 中开始时间加小时数等于结束时间,怎么改这个代码?相关的知识,希望对你有一定的参考价值。

开始时间加小时数等于结束时间, 求问题各位大神怎么改下下边的代码function count() var xiaoshishu=document.getElementById("xiaoshishu").value; var kaishi=document.getElementById("kaishi").value; var xiaoshishu = new Date(xiaoshishu.replace(/-/g, "/"));   var kaishi = new Date(kaishi.replace(/-/g, "/"));   var days = xiaoshishu.getTime() + kaishi.getTime();   var jieshu = parseInt(days / (1000 * 60 * 60 * 24));   document.getElementById("jieshu").value=jieshu;

1 小时数得保证是正整数,开始时间保证是合法的时间格式

2 代码

function count() 
    var hours = document.getElementById("xiaoshishu").value;
    var startDate = document.getElementById("kaishi").value;
    hours = parseInt(hours);
    startDate = new Date(startDate);
    var newDate = new Date(startDate.setHours(startDate.getHours() + hours));
    document.getElementById("jieshu").value = `$newDate.getFullYear()-$newDate.getMonth() + 1-$newDate.getDate() $newDate.getHours():$newDate.getMinutes()`;

count();

追问

运行得不出来,最后边一句 好像有问题.

追答

最后一句就是 Date 数据输出成 YYYY-MM-DD HH:mm 格式的时间。就相当于把时间序列化。html 中的小时数,需要有值,而且parseInt()之后得是number。

<input type="text" id="xiaoshishu" value="6">
<input type="text" id="kaishi" value="2019-03-04 10:17">
<input type="text" id="jieshu" value="">

html里边添加这个,可以出来的。我可以给你做个demo,手动输入,再显示。

<input type="text" id="xiaoshishu" value="">
<input type="text" id="kaishi" value="2019-03-04 10:17">
<input type="text" id="jieshu" value="">
<button id="button">点击</button>
<script>
function dates() 
    var hours = document.getElementById("xiaoshishu").value;
    var startDate = document.getElementById("kaishi").value;
    hours = parseInt(hours);

    if (!hours) 
        alert('请输入正确的小时数');
        document.getElementById("xiaoshishu").value = '';
        return false;
    

    startDate = new Date(startDate);

    if (isNaN(startDate.getDate())) 
        alert('请输入正确的开始时间');
        document.getElementById("jieshu").value = '';
        return false;
    
    var newDate = new Date(startDate.setHours(startDate.getHours() + hours));
    document.getElementById("jieshu").value = `$newDate.getFullYear()-$newDate.getMonth() + 1-$newDate.getDate() $newDate.getHours():$newDate.getMinutes()`;


document.getElementById('button').onclick = dates;
</script>

追问

最后一句做拆解可以用

追答`$newDate.getFullYear()-$newDate.getMonth() + 1-$newDate.getDate() $newDate.getHours():$newDate.getMinutes()`

这一句么??怎么拆解呢??

let newDate = new Date();
console.log(`$newDate.getFullYear()-$newDate.getMonth() + 1-$newDate.getDate() $newDate.getHours():$newDate.getMinutes()`)

每一个'$'中的内容都可以拿出来的呀。里边代码就是获取年月日的。

参考技术A 最简单的办法是,获取开始时间和小时数,然后都转化成时间戳运算,然后再把运算结果转换成你想要的格式展示出来 参考技术B 这个是要转化成时间戳的吧

以上是关于JS 中开始时间加小时数等于结束时间,怎么改这个代码?的主要内容,如果未能解决你的问题,请参考以下文章

simulink改结束时间没用

JS 获取一段时间内的工作时长小时数

excel怎么批量修改一格中的日期时间不修改分秒?

js 怎么计算 开始日期(2011-02-22)+天数(3)=结束日期(2011-02-24)

daterangepicker插件单个时间选择器怎么加小时、分钟、秒,如图的效果

java怎么加时间段