javascript如何检查2个日期之间的天数

时间:2017-04-10 04:31:48

标签: javascript date-parsing

我正在开发一个日期测试javascript程序,让用户输入日期。它将解析日期以在具有适当标签的单独行上显示月,日和年。它还会将当前日期与输入日期进行比较,以显示它们之间的日差异数。到目前为止,我已经能够显示当前数据并接受用户输入,但不知道如何计算中间天数与输入日期之间的天数。出于某种原因,它使用的是1969年,我想给我几天的差异,不能让它分解成单独的行。几个星期以来一直在研究这个问题并且正在以不同的方式打破我的头脑。到目前为止,我有以下内容:

<header>
    <h1>Date Test</h1>
</header>
<br>
<p>Please enter date:</p>
<input id="inp" type="date">
<br>
<br>
<button type="button" onclick="date_test()">Process</button>
<br>
<p id="iop"></p>
<br>
<p id="op"></p>
<br>
<p id="dd"></p>

<script>

    document.getElementById("op").innerHTML = Date();

        function date_test() {

            var d = document.getElementById("inp").value;
            document.getElementById("iop").innerHTML = d;

            var inpu = document.getElementById("inp").value;
            var da = Date.parse(inpu);
            var minutes = 1000 * 60;
            var hours = minutes * 60;
            var days = hours * 24;
            var x = Math.round(da / days);

            document.getElementById("dd").innerHTML = x;

        }
</script>

4 个答案:

答案 0 :(得分:0)

这是一个可以使用的简单功能

function calculate_days(date1, dat2){
    return (date2-date1)/(24*3600*1000);
}

date1 = new Date("4-4-2017");
date2 = new Date("4-8-2017");
console.log(calculate_days(date1, date2));

其中date1和date2是日期对象。需要分母中的1000,因为差异将返回毫秒数。

答案 1 :(得分:0)

以下是示例代码

<header>
<h1>Date Test</h1>
</header>
<br>
<p>Please enter date:</p>
<input id="inp" type="date">
<br>
<br>
<button type="button" onclick="date_test()">Process</button>
<br>
<p id="iop"></p>
<br>
<p id="op"></p>
<br>
<p id="dd"></p>

<script>

  document.getElementById("op").innerHTML = Date();

  function date_test() {

    var d = document.getElementById("inp").value;
    document.getElementById("iop").innerHTML = d;

    var inpu = document.getElementById("inp").value;
    var da = Date.parse(inpu);
    //here passing current date & selected date as params
    console.log(daysBetween(new Date(), new Date(da)))

  }


  daysBetween = function( date1, date2 ) {
    console.log(date1);
    console.log(date2);
    //Get 1 day in milliseconds
    var one_day=1000*60*60*24;

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime();
    var date2_ms = date2.getTime();

    // Calculate the difference in milliseconds
    var difference_ms = date2_ms - date1_ms;

    // Convert back to days and return
    return Math.round(difference_ms/one_day); 
  }

</script>

答案 2 :(得分:0)

$this->orders->insert_order_mix($data);

答案 3 :(得分:0)

我认为你应该使用这些代码

    var date1 = new Date("7/20/2017");
var date2 = new Date("12/25/2017");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
alert(diffDays);