【问题标题】:Get the difference between two dates show count as 1 if I select two dates as current date如果我选择两个日期作为当前日期,则获取两个日期之间的差异显示计数为 1
【发布时间】:2016-10-22 08:20:52
【问题描述】:

我有以下小提琴

https://jsfiddle.net/fNPvf/31895/

当我的日期如下var firstDate = new Date(2008,01,12); var secondDate = new Date(2008,01,12); 时,我收到的警报为0 我想显示为1 所以有人可以帮助我

【问题讨论】:

  • 从 12 号到 22 号,我得到了 10,这是正确的。
  • 当日期相同时,您如何期望结果为 1?
  • 您问题的全部内容必须在您的问题中中,而不仅仅是链接。链接腐烂,使问题及其答案对未来的人们毫无用处,人们不应该离开现场来帮助你。将minimal reproducible example 放入 问题中,最好使用 Stack Snippets(<> 工具栏按钮)使其可运行。更多:How do I ask a good question?
  • “我收到警报为 0 我想显示为 1,所以有人可以帮助我” 嗯....+ 1?
  • op 就像我希望 4-1 变成 2

标签: javascript datetime


【解决方案1】:

我猜你想表明某事是 1 天长(日期相同),如果日期是这样的

var firstDate = new Date(2008,01,12);
var secondDate = new Date(2008,01,13);

您想显示它是 2 天。

那么为什么不直接加 1 到 diff 呢? (如果我理解你的目标是正确的)

var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))) +1;

【讨论】:

    【解决方案2】:

        function change(){
           
           var oneDay = 24*60*60*1000;
        var firstDate = new Date(2008,1,12);
        var secondDate = new Date(2008,1,12);
        
        var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
    //to avoid 0 & less and make it 1 at least 
    //===========================================
        diffDays = diffDays <= 0 ? 1 : diffDays;
    //===========================================
        alert(diffDays)
            
        }
    &lt;input type="submit" id="byBtn" value="Change" onclick="change()"/&gt;

    【讨论】:

      【解决方案3】:

      如果你想要同一日期的差异,它总是为零。为什么不应该呢? 无论如何,您可以检查结果是否为 0,然后将其设置为 1。

      var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
      diffDays=diffDays?diffDays:1;
      alert(diffDays);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-22
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多