简体   繁体   English

计算两个日期之间的差

[英]calculate the difference between two dates

I trying to calculate the difference between two dates, I wrote java script function and it works fine but the problem is that it deals with days as month and vise versa. 我试图计算两个日期之间的时差,我编写了Java脚本函数,它可以正常工作,但问题是它处理的日期是月份,反之亦然。

for example: if the first date is 2/7/2013 and the second date is 3/7/2013 it gives me the result 30 days instead of 1 day. 例如:如果第一个日期是2013年7月7日,第二个日期是2013年7月7日,则结果为30天而不是1天。

here is my code: 这是我的代码:

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery- ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

<script>
$(function() {
$( "#from" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}});
$( "#to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
});
</script>
<form method="post" action="" name="date">

<label for="from"> Start Date : </label>
<input type="text" id="from" name="start" />
<br/>
<label for="to">   End Date : </label>
<input type="text"  id="to"  name="end"/>
<br/>
<input type="submit" name="Submit" value="reserve"    onclick="setDifference(this.form);"/></p>

<input type="hidden" name="result"  />
</form>


<script type="text/javascript">

function setDifference(frm) {
var dtElem1 = frm.elements['start'];
var dtElem2 = frm.elements['end'];
var resultElem = frm.elements['result'];

if(!dtElem1 || !dtElem2 || !resultElem) {
return;
}

var x = dtElem1.value;
var y = dtElem2.value;
var arr1 = x.split('/');
var arr2 = y.split('/');


var dt1 = new Date();
dt1.setFullYear(arr1[2], arr1[1], arr1[0]);
var dt2 = new Date();
dt2.setFullYear(arr2[2], arr2[1], arr2[0]);

resultElem.value = (dt2.getTime() - dt1.getTime()) / (60 * 60 * 24 * 1000);
}
</script>

<?php

$from= $_POST['start'];
$to= $_POST['end'];
$result = $_POST['result']; 
?>

Check In Date : <?php echo $from; ?></label><br />
Check Out Date : <?php echo $to; ?></label><br />
Number Of days: <?php echo $result; ?></label><br />
<BR/>

mm/dd/yyyy not dd/mm/yyyy mm / dd / yyyy不是dd / mm / yyyy

var dt1 = new Date();
dt1.setFullYear(arr1[1], arr1[2], arr1[0]);
var dt2 = new Date();
dt2.setFullYear(arr2[1], arr2[2], arr2[0]);

resultElem.value = (dt2.getTime() - dt1.getTime()) / (60 * 60 * 24 * 1000);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM