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



我正在使用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>

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

小提琴: 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))
})

你可以这样做:

<!DOCTYPE html>
<style type="text/css">
label {
  width:150px;
  display:inline-block;
}
</style>
<label for="admissionDate">admission date</label>
<input id="admissionDate" name="admissionDate" type="date" />  
<br />
<label for="graduationDate">graduation date</label>
<input id="graduationDate" name="graduationDate" type="date" /> 
<br />
<label for="birthDate" >birth date</label>
<input id="birthDate" type="date" name="birthDate" />
<br />
<button id="age">Get Age</button>
<script type="text/javascript">
var doc = document;
var admission = doc.getElementById("admissionDate");
var graduation = doc.getElementById("graduationDate");
var birth = doc.getElementById("birthDate");
var age = doc.getElementById("age");
age.addEventListener("click", function(){
var gradDate = new Date(graduation.value);
var birthDate = new Date(birth.value);
var dateDiff = new Date(gradDate - birthDate);
var YEAR_OFFSET = 1970;
alert("This person is " + (dateDiff.getFullYear()-YEAR_OFFSET) + " years old");
});
</script>

**我是这样做的**

   var calc = document.getElementById("calc")
calc.addEventListener("click", function() {
    var date = document.getElementById("date").value,
        time = document.getElementById("time").value
    
   var hi = new Date(date + " " + time).toISOString();
// Set the date we're counting down to
var countDownDate = new Date(hi).getTime();
// Update the count down every 1 second
var x = setInterval(function() {
  // Get today's date and time
  var now = new Date().getTime();
    
  // Find the distance between now and the count down date
  var distance = countDownDate - now;
    
  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);
    
  // Output the result in an element with id="demo"
  document.getElementById("demo").innerHTML = days + "d " + hours + "h "
  + minutes + "m " + seconds + "s ";
    
  // If the count down is over, write some text 
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "وقت المهمة حان  ";
  }
}, 1000);})
<p id="demo"></p>
Date:<input id="date" type="date" name="task_date" />
Time:<input id="time" type="time" name="task_time" />
<button id="calc">Get Time</button>
</div>

这样就不会出现date字段中出现日期而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);

试试这个

<!DOCTYPE html>
<html>
<head>
<script>
function startTime() {
    var today=new Date();
    var h=today.getHours();
    var m=today.getMinutes();
    var s=today.getSeconds();
    m = checkTime(m);
    s = checkTime(s);
    document.getElementById('txt').innerHTML = h+":"+m+":"+s;
    var t = setTimeout(function(){startTime()},500);
}
function checkTime(i) {
    if (i<10) {i = "0" + i};  // add zero in front of numbers < 10
    return i;
}
</script>
</head>
<body onload="startTime()">
<div id="txt"></div>
</body>
</html>

最新更新