Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Даты в JavaScript_ (https://javascript.ru/forum/events/37405-daty-v-javascript_.html)

Сладенькая конфетка 18.04.2013 16:34

Даты в JavaScript_
 
Есть дата (строковая переменная) 20130401

как уменьшить строку на день, чтобы было 20130331, а не 20130400?:help:

devote 18.04.2013 16:57

function shiftDays(string, shift) {
    var dt = new Date(string.substr(0, 4), string.substr(4, 2) - 1, string.substr(6));
    var seconds = 1000 * 60 * 60 * 24 * Math.abs(shift);
    dt.setTime(shift >= 0 ? dt.getTime() + seconds : dt.getTime() - seconds);
    var year = dt.getFullYear();
    var month = dt.getMonth() + 1;
    var day = dt.getDate();
    return [
        year,
        (month > 9 ? '' : '0') + month,
        (day > 9 ? '' : '0') + day
    ].join('');
}

alert(shiftDays('20130401', 1));
alert(shiftDays('20130401', -1));

Сладенькая конфетка 18.04.2013 17:05

1. дата генерируется заранее
2. нужно полученное значение 20130331 запихнуть в переменную

Aetae 18.04.2013 20:43

Цитата:

Сообщение от devote (Сообщение 246932)
function shiftDays(string, shift) {
    var dt = new Date(string.substr(0, 4), string.substr(4, 2) - 1, string.substr(6));
    var seconds = 1000 * 60 * 60 * 24 * Math.abs(shift);
    dt.setTime(shift >= 0 ? dt.getTime() + seconds : dt.getTime() - seconds);
    var year = dt.getFullYear();
    var month = dt.getMonth() + 1;
    var day = dt.getDate();
    return [
        year,
        (month > 9 ? '' : '0') + month,
        (day > 9 ? '' : '0') + day
    ].join('');
}

alert(shiftDays('20130401', 1));
alert(shiftDays('20130401', -1));

Почему используешь setTime, а не setDate, что было бы логичнее?

Цитата:

Сообщение от Сладенькая конфетка (Сообщение 246937)
1. дата генерируется заранее
2. нужно полученное значение 20130331 запихнуть в переменную

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

var date_new = shiftDays( date_old, -1);
//date_new новая переменная
//date_old старая переменная


Часовой пояс GMT +3, время: 20:22.