附加带日期ID的多个div

时间:2011-05-12 15:08:24

标签: jquery date calendar append

我正在尝试创建一种生命流,我会在其中显示推文等。无论如何,我刚开始,我一直坚持一些非常容易的东西,但我无法弄明白。

我正试图以一种方式向一个容器附加一系列div(确切地说是30个),每个div都有一个类/ ID和它所关注的日期。我已经有一个日期变量,其中包含dd-mm-yyyy格式的当前日期。我想在容器上添加类似的东西:

<div class="entry" id="12-05-2011">
</div>
<div class="entry" id="11-05-2011">
</div>
<div class="entry" id="10-05-2011">
</div>
etc...

第一个日期在当前日期。

您对如何做到这一点有什么想法吗?

提前致谢!

这是我的日期代码:

var time = new Date();
var day = time.getDate();
var month = time.getMonth() + 1;
if(month < 10){
month = "0" + month;
}
var year = time.getFullYear();
var date = day + "-" + month + "-" + year;

2 个答案:

答案 0 :(得分:2)

这是你可以做的一些JS:

date_counter = {
    current_day: (new Date()).getDate(),
    current_month: (new Date()).getMonth(),
    current_year: (new Date()).getFullYear(),
    get_date: function(days_past){
        var time = new Date(this.current_year, 
                            this.current_month, 
                            (this.current_day)+days_past);
        var day = time.getDate();
        var month = time.getMonth() + 1;
        if (month < 10) {
            month = "0" + month;
        }
        var year = time.getFullYear();
        var date = day + "-" + month + "-" + year;
        return date
    }
}

for (var i = 0; i <= 30; i++)
{
    console.log(date_counter.get_date(i));
    var date = date_counter.get_date(i);
    $the_div = $('<div>', {
        id: 'date_' + date, //to have correct types of ids (see comments below)
        text: 'Content for ' + date
    });
    $the_div.appendTo(document.body);
}

以下是小提琴示例:http://jsfiddle.net/maniator/zrnnP/

答案 1 :(得分:0)

不确定为什么Neal的答案如此复杂。也许我错过了什么,但以下似乎对我有用......

var date = new Date()
date.setMonth(date.getMonth() - 1);

while(date <= new Date()) {
    $('#container').append(getDateDiv(date));
    date.setDate(date.getDate() + 1);
}

function getDateDiv(date) {
    return '<div id="' + getDateString(date) + '"></div>';
}

function getDateString(date) {
   // note that months are 0 indexed
   return date.getDate() + '-' 
       + (date.getMonth() + 1) 
         + '-' + date.getFullYear();
}

编辑刚刚看到你想要降序,所以......

var date = new Date()
var counter = 0;
while(counter <= 30)
{
    $('#container').append(getDateDiv(date));
    date.setDate(date.getDate() - 1);
    counter++;
}

另外,我建议改为使用yyyymmdd格式的日期。