Получить файл XML на основе текущей даты - PullRequest
0 голосов
/ 28 августа 2011

Я новичок в разборе XML-данных с помощью javascript, поэтому, пожалуйста, извините, если мой вопрос немного прост.

Я анализирую данные из файла XMl с помощью javascript, используя стандартный xmlHTTPRequest. Формат URL, из которого я извлекаю данные XML, выглядит примерно так: "http://example.com/abcyymmdd-data.xml". Часть (yymmdd) URL представляет дату, а файлы обновляются ежедневно. Я хотел бы вставить код JavaScript в URL вместо yymmdd, так что новый XML-файл анализируется каждый день. Как я могу добиться этого?

Спасибо, Carlos

Ответы [ 2 ]

3 голосов
/ 28 августа 2011

Сначала, чтобы получить сегодняшнюю дату, используйте:

var today = new Date;

Чтобы получить компоненты, используйте:

var date  = today.getDate();
var month = today.getMonth() + 1; // caveat, starts at 0
var year  = today.getFullYear();  // 4 numbers (e.g. 2011)

Теперь вам нужно это в формате yymmdd.Таким образом, вам нужно удалить два первых числа из года и добавить 0 к дате и месяцу, если необходимо.

function zeropad(number) {
    var str = number.toString(); // number to string

    return str.length === 1 // if length is 1
            ? '0' + str     // prepend a 0
            : str;          // otherwise return string without modification
}

А затем:

var formatted = year.toString().substring(2) // only the string from the first two numbers and on
                 + zeropad(month)            // month with 0 prepended
                 + zeropad(date);            // date with 0 prepended

Затемваш XHR, используйте:

xhr.open("GET", "http://example.com/abc" + formatted + "-data.xml", true);
2 голосов
/ 28 августа 2011

Вы можете получить текущую дату в формате yymmdd, например:

var d = new Date();
var date_string = 
    d.getFullYear().toString().substring(2) +
    (d.getMonth () < 9 ? "0" : "") + (d.getMonth() + 1) +
    (d.getDate() < 10 ? "0" : "") + d.getDate();

Пример на JS Fiddle.

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