javascript中的日期差异?

时间:2014-08-01 07:43:48

标签: javascript date

我知道如何使用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>

这两个字段实际上是bootstrap日期选择器。它们总是带有一些默认值。现在,我希望当用户更改这两个值来计算两个日期之间的差异时(警报或控制台日志会这样做,我会从那里找到我的方式)。

问题是我不知道从哪里开始以及如何进行计算。我再次认为onchange事件可能是一个很好的候选人但是...我不知道如何计算差异。

任何帮助都将深受赞赏。

问候,约翰

3 个答案:

答案 0 :(得分:2)

您可以先解析字符串,然后创建一个类似的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)。

现在你有不同的日子。有关示例,请参阅JSFiddle

答案 1 :(得分:0)

<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!")

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

示例:圣诞节前剩下146天!

答案 2 :(得分:-1)

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)​;

试试这个。我从link

中找到了它