Добавление нескольких делений с идентификаторами даты - PullRequest
0 голосов
/ 12 мая 2011

Я пытаюсь создать что-то вроде жизнепотока, в котором я бы отображал твиты и тому подобное. Во всяком случае, я в начале, и я застрял на чем-то, что должно быть довольно легко, но я не могу понять.

Я пытаюсь добавить к контейнеру серию div (30, если быть точным) таким образом, чтобы у каждого div был класс / ID с соответствующей датой. У меня уже есть переменная даты, содержащая текущую дату в формате дд-мм-гггг. Я хотел бы добавить к своему контейнеру что-то вроде:

<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 ]

2 голосов
/ 12 мая 2011

Вот некоторые 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/

0 голосов
/ 12 мая 2011

Не уверен, почему ответ Нила такой сложный.Может быть, я что-то упустил, но мне кажется, что следующее работает ...

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...