【问题标题】:JavaScript date difference Days [duplicate]JavaScript日期差异天[重复]
【发布时间】:2015-12-03 11:59:51
【问题描述】:

我想计算两个日期之间的差异。目前,我正在执行以下代码:

function calculDiff(){
    var v1= $('#date_debut').val();
    var v2=$('#date_fin').val();
    var dayDiff=((v2-v1) / (24*60*60*1000));
    var dayDiff2=Math.floor(dayDiff);
    console.log(v1 + ' '+ v2);
    console.log(dayDiff + ' '+ dayDiff2);
}
$(document).ready(function(){
    $('#date_debut').datepicker().bind('change paste keyup',function(){
        calculDiff();
        return false;
    });
    //
    $('#date_fin').datepicker().bind('change paste keyup',function(){
        calculDiff();
        return false;
    });
});

PS:我有 2 个输入类型日期(date_debut 和 date_fin)

【问题讨论】:

  • 那你有什么问题?
  • 我有 Nan 作为输出,并且没有 DateDiff 计算
  • 在不支持输入类型日期的浏览器中,$('#date_debut').val()返回的值是多少?
  • $('#date_debut').val() 返回我从日期选择器中选择的日期

标签: javascript jquery date


【解决方案1】:

试试这个

var now  = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";
moment.utc(moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss")

查看更多内容 http://momentjs.com/docs/#/displaying/difference/

【讨论】:

  • 非常感谢,但这不是我想要的!
【解决方案2】:

我想你想要天差,你可以使用下面的代码来获得天差。

var start_date = new Date($('#date_debut').val());
var end_date = new Date($('#date_fin').val()); 

var diff = new Date(end_date - start_date);
var days = diff/1000/60/60/24;
console.log("diff=>"+days);

当用户选择第一个日期时,打开其他日期日期选择器选择剩余字段,然后计算差异。

【讨论】:

  • 我得到的 diff=>NaN
  • 我已经更新了我的答案,请立即检查,如果不起作用,我提供了评论,然后转换为日期 e.x new Date(value);
  • 现在可以了,非常感谢。但是还是Date格式,dd/mm/yyyy这个格式怎么设置?
  • 您可以在 datepicker 方法 { dateFormat: 'dd-mm-yy' } 中更改格式。比如 $('#date_debut').datepicker({ dateFormat: 'dd-mm-yy' })
  • 非常感谢您的帮助。上帝保佑你!
猜你喜欢
  • 2015-03-23
  • 2015-12-19
  • 2011-09-18
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-05
  • 2012-02-17
相关资源
最近更新 更多