javascript如何检查两个日期之间的天数
我正在开发一个日期测试javascript程序,让用户输入日期。它将解析日期以在带有适当标签的单独行上显示月、日和年。它还将比较当前日期和输入的日期,以显示它们之间的天数差。到目前为止,我已经能够显示当前的dat并接受用户输入,但不知道如何根据我输入的日期计算中间的天数。出于某种原因,它使用1969年,我想给我天数的差异,不能让它解析成单独的行。我已经为此工作了好几个星期,现在正想方设法想办法解决这个问题。到目前为止,我有以下几点:javascript如何检查两个日期之间的天数,javascript,date-parsing,Javascript,Date Parsing,我正在开发一个日期测试javascript程序,让用户输入日期。它将解析日期以在带有适当标签的单独行上显示月、日和年。它还将比较当前日期和输入的日期,以显示它们之间的天数差。到目前为止,我已经能够显示当前的dat并接受用户输入,但不知道如何根据我输入的日期计算中间的天数。出于某种原因,它使用1969年,我想给我天数的差异,不能让它解析成单独的行。我已经为此工作了好几个星期,现在正想方设法想办法解决这个问题。到目前为止,我有以下几点: <header> <h1>Da
<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>
日期测试
请输入日期:
过程
document.getElementById(“op”).innerHTML=Date();
函数日期_测试(){
var d=document.getElementById(“inp”).value;
document.getElementById(“iop”).innerHTML=d;
var inpu=document.getElementById(“inp”).value;
var da=Date.parse(inpu);
var分钟=1000*60;
var小时=分钟*60;
var天数=小时*24;
var x=数学轮(da/天);
document.getElementById(“dd”).innerHTML=x;
}
这里有一个简单的函数,您可以使用
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是日期对象<分母中需要code>1000,因为差值将返回毫秒数。以下是示例代码
<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>
日期测试
请输入日期:
过程
document.getElementById(“op”).innerHTML=Date();
函数日期_测试(){
var d=document.getElementById(“inp”).value;
document.getElementById(“iop”).innerHTML=d;
var inpu=document.getElementById(“inp”).value;
var da=Date.parse(inpu);
//此处将当前日期和所选日期作为参数传递
console.log(daysBetween(new Date(),new Date(da)))
}
daysBetween=函数(日期1,日期2){
console.log(date1);
控制台日志(日期2);
//以毫秒为单位获取1天
var一天=1000*60*60*24;
//将两个日期转换为毫秒
var date1_ms=date1.getTime();
var date2_ms=date2.getTime();
//以毫秒为单位计算差值
var差异=日期2\u ms-日期1\u ms;
//返回到天并返回
返回数学圆(差分毫秒/一天);
}
var date1=新日期();
var dd=date1.getDate()+20;//加20天
var mm=date1.getMonth()+1//一月是零!
var yyyy=date1.getFullYear();
如果(dd我认为你应该使用这些代码
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);
你需要普遍的“差异”运算符…-
…代码中可疑缺失请先搜索,返回许多类似的问题。选择任何合理的问题作为副本。您可能应该使用Math.round,因为并非所有日子都在夏令时边界上长达24小时。这可能是在某些夏令时边界上的一天。然后整个函数n body可以返回Math.round((date1-date2)/8.64e7)
。由于结果不可靠,因此不应使用Date.parse(或日期构造函数)解析日期。