如何在 JavaScript 中将 long 转换为 int?

How can I convert long to int in JavaScript?

此 HTML 文件计算当前日期与选定日期之间的天数差异,只要它晚于今天。
最终输出显示两个日期之间有多少天,但我无法将它从 long 转换为 int。
谁能解决这个问题?

这里是代码:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Calcolo distanza</title>
    </head>
    <body onload="myFunction()">
    <p> Data corrente </p>
    <button type="button" id="myBtn"></button>
    <p> Scegli la data </p>
    <input type="date" id="dataCorrente">
    <input type="submit" onclick="calcola()">
    <br>
    <p id="Risultato"> </p>

    </body>
    <script>
        var d= new Date();
        function myFunction(){
            console.log("onload()");
            console.log(d);
            document.getElementById("myBtn").innerHTML=d.toDateString();
        }
        function calcola(){
            var input = document.getElementById("dataCorrente").value;
            if(input!=null){
                var dat=new Date();
                dat.setHours(0);
                dat.setMinutes(0);
                dat.setSeconds(0);
                var data = new Date(input); 
                var mill1=dat.getTime();
                var mill2=data.getTime();
                if(mill2>mill1){
                    mill2=mill2-mill1;
                    var ris=mill2/86400000;
                    document.getElementById("Risultato").innerHTML=ris;
                }
                else{
                    document.getElementById("Risultato").innerHTML="La data deve essere maggiore di quella corrente";
                }
            }
            else{
                console.log("input=null");
                document.getElementById("Risultato").innerHTML="Data non inserita";
            }
        }
    </script>
    </html>

像这样使用parseInt()函数:

var d = new Date();

function myFunction() {
  /*console.log("onload()");
  console.log(d);*/
  document.getElementById("myBtn").innerHTML = d.toDateString();
}

function calcola() {
  var input = document.getElementById("dataCorrente").value;
  if (input != null) {
    var dat = new Date();
    dat.setHours(0);
    dat.setMinutes(0);
    dat.setSeconds(0);
    var data = new Date(input);
    var mill1 = dat.getTime();
    var mill2 = data.getTime();
    if (mill2 > mill1) {
      mill2 = mill2 - mill1;
      var ris = mill2 / 86400000;
      document.getElementById("Risultato").innerHTML = parseInt(ris);
    } else {
      document.getElementById("Risultato").innerHTML = "La data deve essere maggiore di quella corrente";
    }
  } else {
    console.log("input=null");
    document.getElementById("Risultato").innerHTML = "Data non inserita";
  }
}
<!DOCTYPE html>
<html>

<head>
  <title>Calcolo distanza</title>
</head>

<body onload="myFunction()">
  <p> Data corrente </p>
  <button type="button" id="myBtn"></button>
  <p> Scegli la data </p>
  <input type="date" id="dataCorrente">
  <input type="submit" onclick="calcola()">
  <br>
  <p id="Risultato"> </p>

</body>

</html>

我设置 data.setHours(0); 是因为日期的时区问题导致了一些问题,它只是重置了时间。在那之后,它似乎起作用了。

试试这个:

var d = new Date();

function myFunction() {
  document.getElementById("myBtn").innerHTML = d.toDateString();
}

function calcola() {
  var input = document.getElementById("dataCorrente").value;
  if (input != null) {
    var dat = new Date();
    dat.setHours(0);
    dat.setMinutes(0);
    dat.setSeconds(0);
    dat.setMilliseconds(0);
    var data = new Date(input);
    data.setHours(0);
    var mill1 = dat.getTime();
    var mill2 = data.getTime();
    if (data > dat) {
      mill2 = data - dat;
      console.log(data)
      console.log(dat)
      var ris = mill2 / 60 / 60 / 24 / 1000;
      document.getElementById("Risultato").innerHTML = ris;
    } else {
      document.getElementById("Risultato").innerHTML = "La data deve essere maggiore di quella corrente";
    }
  } else {
    console.log("input=null");
    document.getElementById("Risultato").innerHTML = "Data non inserita";
  }
}
<!DOCTYPE html>
<html>

<head>
  <title>Calcolo distanza</title>
</head>

<body onload="myFunction()">
  <p> Data corrente </p>
  <button type="button" id="myBtn"></button>
  <p> Scegli la data </p>
  <input type="date" id="dataCorrente">
  <input type="submit" onclick="calcola()">
  <br>
  <p id="Risultato"> </p>

</body>

</html>