Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2013, 16:34
Аватар для Сладенькая конфетка
Новичок на форуме
Отправить личное сообщение для Сладенькая конфетка Посмотреть профиль Найти все сообщения от Сладенькая конфетка
 
Регистрация: 17.04.2013
Сообщений: 6

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

как уменьшить строку на день, чтобы было 20130331, а не 20130400?
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2013, 16:57
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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));
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2013, 17:05
Аватар для Сладенькая конфетка
Новичок на форуме
Отправить личное сообщение для Сладенькая конфетка Посмотреть профиль Найти все сообщения от Сладенькая конфетка
 
Регистрация: 17.04.2013
Сообщений: 6

1. дата генерируется заранее
2. нужно полученное значение 20130331 запихнуть в переменную
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2013, 20:43
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Сообщение от devote Посмотреть сообщение
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, что было бы логичнее?

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

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

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

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

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

Последний раз редактировалось Aetae, 18.04.2013 в 20:50.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даты в JavaScript Сладенькая конфетка Общие вопросы Javascript 10 18.04.2013 22:12
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Получать timestamp из даты и времени в javascript lor08 Общие вопросы Javascript 5 29.07.2010 13:54
проверка формата даты на JavaScript, помогите простейшим примером tangens Общие вопросы Javascript 18 05.12.2008 16:20