Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的日期差异(以天为单位)?_Javascript_Date - Fatal编程技术网

javascript中的日期差异(以天为单位)?

javascript中的日期差异(以天为单位)?,javascript,date,Javascript,Date,我知道如何使用javascript,但我对它没有深入的了解。我知道如何在PHP中获得以天为单位的日期差,但在这种情况下,我需要javascript解决方案。老实说,我甚至不知道是否有可能用Javascript实现这一点。我想是的,但那只是猜测 以下是我拥有的html: <div class="span3" id="checkin"> <span class="text-label"><i class="icon-calendar"></i>

我知道如何使用javascript,但我对它没有深入的了解。我知道如何在PHP中获得以天为单位的日期差,但在这种情况下,我需要javascript解决方案。老实说,我甚至不知道是否有可能用Javascript实现这一点。我想是的,但那只是猜测

以下是我拥有的html:

<div class="span3" id="checkin">
    <span class="text-label"><i class="icon-calendar"></i>Check In</span> 
    <input type="text" name="checkin" value="02/08/2014">
</div>

<div class="span3" id="checkout">
    <span class="text-label"><i class="icon-calendar"></i>Check Out</span>
    <input type="text" name="checkout" value="04/08/2014">
</div>

登记入住
退房
这两个字段实际上是引导日期选择器。它们总是带有一些默认值。现在,我希望当用户更改这两个值以计算两个日期之间的差异时(警报或控制台日志就可以了,我将从那里找到我的方法)

问题是,我不知道从哪里开始,如何计算。再次,我想onchange事件可能是一个很好的候选者,但是…我不知道如何计算差异

任何帮助都将不胜感激

你好,约翰

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

试试这个。我从这里找到了它,你可以先解析你的字符串,创建一个JavaScript日期,如下所示:

var start = $("input[name=checkin]").val().split("/");
var end = $("input[name=checkout]").val().split("/");

var startDate = new Date(start[2], start[1]-1, start[0]);
var endDate = new Date(end[2], end[1]-1, end[0]);
然后,您可以简单地将日期相互减去:

endDate - startDate
这个减法将给出以毫秒为单位的时间差。要将其转换为天,只需将其除以一天中的毫秒数(
1000*60*60*24

现在你有了天数上的差异。有关示例,请参见。


//设定两个日期
今天=新日期()
var christmas=新日期(today.getFullYear(),11,25)//在JavaScript中,月份是0-11
if(today.getMonth()==11&&today.getDate()>25)//如果圣诞节已经过去了
christmas.setFullYear(christmas.getFullYear()+1)//计算下一年的圣诞节
//以毫秒为单位设置1天
var一天=1000*60*60*24
//根据这两个日期计算差值,并转换为天
document.write(Math.ceil((christmas.getTime()-today.getTime())/(一天))+
“离圣诞节还有几天!”

这个简短的Javascript将显示今天(值1)和圣诞节(值2)之间的日差。Ovbioulsy这些可以用我们的两个值代替,然后应该可以工作


离圣诞节还有146天

阅读关于可能会有所帮助。我也发现了这个链接,但没有例子说明如何在天数中获得两个日期之间的差异…无论如何,谢谢…”“因此,计算两个日期之间的差异的一般前提是使用Date.getTime()将两个日期转换为一个数字,然后从no中减去!”?看看如何计算经过的时间。将毫秒转换为天应该很简单…谢谢…我会从这里开始找到我的方法…我不知道如何去除/符号以及如何计算日期…再次感谢您的帮助
<script type="text/javascript">

//Set the two dates
today=new Date()
var christmas=new Date(today.getFullYear(), 11, 25) //Month is 0-11 in JavaScript
if (today.getMonth()==11 && today.getDate()>25) //if Christmas has passed already
christmas.setFullYear(christmas.getFullYear()+1) //calculate next year's Christmas
//Set 1 day in milliseconds
var one_day=1000*60*60*24

//Calculate difference btw the two dates, and convert to days
document.write(Math.ceil((christmas.getTime()-today.getTime())/(one_day))+
" days left until Christmas!")