计算两个Jquery日期选择器之间的周数

时间:2014-12-26 17:08:24

标签: javascript jquery

我的代码大多数都可以工作..但偶尔会给我一些非常奇怪的十进制数。我认为这与UTC时间有关。有什么建议?

HTML

<h2> First Date</h2>
<input type="text" class="datepicker" id="startDate"/>

<h2> Second Date</h2>
<input type="text" class="datepicker" id="endDate"/>

<button type="button" id="test">Click It</button>  
<p>Total Weeks</p>
<span id="totalWeeks">HERE</span> 

JQuery的

'use strict';

(function ($) {
    $(document).ready(function () {

        $('#test').click(function () { 
            var end = $('#endDate').datepicker('getDate');
            var start = $('#startDate').datepicker('getDate');
            var $weekDiff = Math.ceil((end - start + 1) / (1000 * 60 * 60 * 24)) / 7;

            $('#totalWeeks').append($weekDiff);
        });
    });
})(jQuery);

2 个答案:

答案 0 :(得分:4)

作为从头开始进行日期算术的替代方法,为什么不使用像moment.js这样的库,它为我们完成了所有艰苦的工作:

  var totalWeeks = moment(end).diff(moment(start), 'weeks');

jsFiddle Demo

答案 1 :(得分:1)

要获得两个日期之间的周数,您需要将7除以floor的结果舍入:

var $weekDiff = Math.floor((end - start + 1) / (1000 * 60 * 60 * 24) / 7);

测试它:http://jsfiddle.net/jafaoej5/