Javascript и объект даты @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 6 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Заголовок сообщения: Javascript и объект даты
Сообщение Добавлено: 6 Май 2008, 12:32:10 
Вернулся из отпуска, туплю.

Код:
dt = document.wheater.seldate.value;
      
var oneDay = 60 * 1000 * 60 * 24;
var da = new Array();
da = dt.split('-');
      
var da1t = new Date( da[0], da[1], da[2] );
var da1 = da1t.getFullYear() + "-" + da1t.getMonth() + "-" + da1t.getDay();
      
alert(da1);


На входе имеем строку document.wheater.seldate.value = '2008-05-19'.
На выходе (da1) = '2008-5-4'

Суть вышеобозначенных преобразований - нужно вычислить даты двух последующих дней. Это - подготовка и проверка.

_________________
Лишь одно в моём кармане - беспонтовый пирожок
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Сообщение Добавлено: 6 Май 2008, 12:47:50 
Прошу прощения, getDay() - это день недели, а не число. Нужно было писать getDate()

Всплыла другая проблема - почему-то JS считает, что в мае 2008 года 30 дней... то есть

Код:
function select_date()
{
   dt = document.wheater.seldate.value;
      
   var oneDay = 60 * 1000 * 60 * 24;
   var da = new Array();
   da = dt.split('-');
      
   var da1t = new Date( da[0], da[1], da[2] );
   var da1 = da1t.getFullYear() + "-" + da1t.getMonth() + "-" + da1t.getDate();
      
   var da2t = new Date();
   da2t.setTime(da1t.getTime() + oneDay);
   var da2 = da2t.getFullYear() + "-" + da2t.getMonth() + "-" + da2t.getDate();

   var da3t = new Date();
   da3t.setTime(da2t.getTime() + oneDay);
   var da3 = da3t.getFullYear() + "-" + da3t.getMonth() + "-" + da3t.getDate();

   document.getElementById("dt1").innerHTML = '<p>'+da1+'</p>';
   document.getElementById("dt2").innerHTML = '<p>'+da2+'</p>';
   document.getElementById("dt3").innerHTML = '<p>'+da3+'</p>';
}


То есть выбираешь 29-е мая - получается 2008-05-29, 2008-05-30, 2008-06-01

_________________
Лишь одно в моём кармане - беспонтовый пирожок
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Май 2008, 13:25:25 
Konyukhov, а кто тебе сказал, что 5 -- это май? 5 -- это июнь. А в июне -- сюрприз, сюрприз -- ровно 30 дней.
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Сообщение Добавлено: 6 Май 2008, 13:44:40 
Это мне сказал datepicker :lol:

Туплю. Считаю. Январь, февраль, март, апрель, май. Получается 5. Нет ну считать месяцы с нуля - это маразм какой-то просто. Я действительно тупой? В чем дело-то? А дни месяца тоже с нуля надо считать? Все понял, спасибо. Проблема, во всяком случае, решена.

_________________
Лишь одно в моём кармане - беспонтовый пирожок
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Май 2008, 15:36:28 

Konyukhov писал(а):
Нет ну считать месяцы с нуля - это маразм какой-то просто.



Да, маразм. Но именно так устроено практически везде -- номера месяцев с нуля. :)
AlexShop Муж.
участник
34
Сообщения: 1866
Зарегистрирован: 17.02.04
Сообщение Добавлено: 7 Май 2008, 05:17:57 
Почему массивы начинаются с нуля тут написано:
http://en.wikipedia.org/wiki/Array#Inde … st_element

Согласен, штука неудобная

_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 6 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100