【问题标题】:date difference in days in javascript?javascript中的日期差异?
【发布时间】:2014-08-01 16:09:47
【问题描述】:

我知道如何使用 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 事件可能是一个不错的候选者,但是......我不知道如何计算差异。

任何帮助将不胜感激。

问候,约翰

【问题讨论】:

  • 了解Date 可能会有所帮助。
  • 我也找到了该链接,但没有示例说明如何获得两个日期之间的天数差异...无论如何谢谢...
  • “所以这是计算两个日期之间差异的一般前提 - 使用 Date.getTime() 将两个日期转换为一个数字,然后减去!”来自javascriptkit.com/javatutors/datedifference.shtml
  • 没有?看看如何计算经过的时间。将毫秒转换为天应该是微不足道的......

标签: javascript date


【解决方案1】:

您可以先解析您的字符串并创建一个这样的 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

【讨论】:

  • 谢谢...我会从这里开始...我不知道如何去除 / 符号以及如何计算日期...再次感谢您的帮助跨度>
【解决方案2】:
<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 天!

【讨论】:

    【解决方案3】:
    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找到它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      相关资源
      最近更新 更多