jQuery - 如何正确显示两个日期之间的所有记录?

时间:2014-04-03 11:32:31

标签: c# javascript jquery date jquery-jtable

这是显示两个日期之间所有记录的正确方法吗?它看起来像牛仔的工作;有没有正确的方法来正确显示所有记录?

这就是我用来显示所有记录的内容:

 var todayDate = new Date();
    var endDate = todayDate.getDate() + '/' + (todayDate.getMonth() + 1) + '/' + (todayDate.getFullYear() + 100);
    var d = new Date();
    var st = d.setDate(todayDate.getDate() - 111365);
    var startDate = d.getDate() + '/' + (d.getMonth() + 1) + '/' + d.getFullYear();
    $('#allrecordsstart').val(startDate);
    $('#allrecordsend').val(endDate);
    $('#TopPlayedInVenueContainer1').jtable('load', {
        StartDate: startDate,
        EndDate: endDate
    });

我过去七天的正确显示方式:

var todayDate = new Date();
    var endDate = todayDate.getDate() + '/' + (todayDate.getMonth() + 1) + '/' + todayDate.getFullYear();
    var d = new Date();
    var st = d.setDate(todayDate.getDate() - 7);
    var startDate = d.getDate() + '/' + (d.getMonth() + 1) + '/' + d.getFullYear();
    $('#lastWeekstart').val(startDate);
    $('#lastWeekend').val(endDate);
    $('#TopPlayedInVenueContainer1').jtable('load', {
        StartDate: startDate,
        EndDate: endDate
    });

任何建议都会很棒。在此先感谢:)

2 个答案:

答案 0 :(得分:2)

JavaScript解释器实际上认为日期是自1970年1月1日午夜以来经过的毫秒数。例如,2012年2月1日星期三实际上是JavaScript解释器的131328083200000(搞笑呃?)。

因此,要创建一个从现在起一周的日期,您可以执行以下操作:

var now = new Date(); // today
var nowMS = now.getTime(); // get # milliseconds for today
var week = 1000*60*60*24*7; // milliseconds in one week
var oneWeekFromNow = new Date(nowMS + week);

第一行将当前日期和时间存储在名为now的变量中。接下来,getTime()方法提取从1970年1月1日到今天已经过的毫秒数。第三行计算一周内的总毫秒数(1000毫秒* 60秒* 60分钟* 24小时* 7天)。最后,代码通过将一周中的毫秒数添加到今天来创建新日期。

我从 Javascript& jQuery:The Missing Manual,David Sawyer 一书。 希望它有所帮助!

答案 1 :(得分:0)

每当我需要处理JavaScript中的日期时,我总是使用第三方库。通常是moment.js

var dateFormat = "DD/MM/YYYY";
var startDate = new moment().subtract("days", 7).format(dateFormat);
var endDate = new moment().format(dateFormat);