如何将 html5 输入类型日期和时间转换为 javascript 日期时间

新手上路,请多包涵

我正在使用 html5 输入类型:日期和时间。如何将表单输入类型转换为 javascript 对象日期(其中包含时间)?

这是我的代码的一部分:

 <html>
    <head>
        <script type="text/javascript">
             function getDate(date, time)
             {
                  var theDate = new Date();
                  ....
             }
        </script>
    </head>
    <body>
        <form name="form_task">
             Date:<input type="date" name="task_date" />
             Time:<input type="time" name="task_time" />
             <input type="button" onclick="getDate(task_date.value, task_time.value)" />
        </form>
    </body>
</html>

原文由 Gil Epshtain 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 258
2 个回答

您需要做的就是从两个输入中提取值,连接它们,然后将它们传递给日期对象。

小提琴:http: //jsfiddle.net/P4bva/

HTML

 Date:<input id="date" type="date" name="task_date" />
Time:<input id="time" type="time" name="task_time" />
<button id="calc">Get Time</button>

JS

 var calc = document.getElementById("calc")

calc.addEventListener("click", function() {
    var date = document.getElementById("date").value,
        time = document.getElementById("time").value

    console.log(new Date(date + " " + time))
})

原文由 bottens 发布,翻译遵循 CC BY-SA 3.0 许可协议

这样您就不会遇到日期字段中出现日期和 Date 对象具有不同日期的问题。

 let datainicio = $("#data-inicio").val();
let datafim = $("#data-fim").val();

if (!datainicio || !datafim) {
    bootbox.alert(DATA_INICIO_DATA_FIM_VAZIAS);
    return;
}

// the month is 0-indexed
let dateinicio = new Date(datainicio.slice(0, 4), Number(datainicio.slice(5, 7)) - 1, datainicio.slice(8, 10));
let datefim = new Date(datafim.slice(0, 4), Number(datafim.slice(5, 7)) - 1, datafim.slice(8, 10));

console.log("Date(datainicio): " + dateinicio);
console.log("Date(datafim) : " + datefim);

原文由 FelipeFalanque 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题