Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как узнать какое число будет через 6 месяцев

Сообщения:  [1-10]    [11-20]  [21-28] 

 
 автор: Огонь   (24.11.2006 в 11:05)   письмо автору
 
   для: Фитч   (14.11.2006 в 16:07)
 

>ЧП!!!!
>Не проще ли юзать JS:
Может и проще, но только в данной задаче :
>Нет. Например идет распечатка из формы. системное время тоже распечатывается.
>Но мне нужно чтобы выводилось такое же день, месяц ,год, только на 6 мес вперед
когда зачение даты не используеться в самом рнр

Кстати, вот еще один вариант решения если дата берётся из бд:

"...
При использовании некорректных значений дат результат будет равен NULL. Если при суммировании MONTH, YEAR_MONTH или YEAR номер дня в результирующей дате превышает максимальное количество дней в новом месяце, то номер дня результирующей даты принимается равным последнему дню нового месяца:

mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);
-> 1998-02-28
..."
http://phpclub.ru/mysql/doc/date-and-time-functions.html

   
 
 автор: Фитч   (20.11.2006 в 20:31)   письмо автору
 
   для: Yakor   (19.11.2006 в 13:52)
 

Пишет 1 марта.
Проверял так:

var d=new Date();

d.setDate(31);

d.setMonth(d.getMonth+сколько_месяцев_до_февраля);

/* и тд */

   
 
 автор: Yakor   (19.11.2006 в 13:52)   письмо автору
 
   для: Фитч   (14.11.2006 в 16:07)
 

>Проверял - с февралем проблем нет!
а что пишет?

   
 
 автор: Фитч   (14.11.2006 в 16:07)   письмо автору
 
   для: helovek   (08.11.2006 в 19:49)
 

ЧП!!!!
Не проще ли юзать JS:

function after6months()
{
 var d=new Date();
 d.setMonth(d.getMonth()+6);
 document.write(d.toLocaleString());     // или вернуть значение в том виде, в каком надо
}

Проверял - с февралем проблем нет!

   
 
 автор: isset   (11.11.2006 в 00:18)   письмо автору
 
   для: Trianon   (10.11.2006 в 19:39)
 

Я очень рад что у вас не осталось аргументов.

   
 
 автор: Trianon   (10.11.2006 в 19:39)   письмо автору
 
   для: isset   (10.11.2006 в 19:23)
 

М... шедевер. От первого до последнего слова. Пожалуй, я этот ответ скопирую, мало ли, вдруг удалят.

   
 
 автор: isset   (10.11.2006 в 19:23)   письмо автору
 
   для: Trianon   (10.11.2006 в 18:54)
 

для справки: в месяце 29.53 дней, что округляется до 30 дней.

Функция strtotime() использует GNU формат даты

Т.е. функция ведет себя согласно GNU формату. Не думаю что вы умнее людей из www.gnu.org, если они не нашли в этом криминала - значит его нет. Про этот казус сказано кстати в мануале GNU, для точного вычесления следующих/предыдущих _месяцев_ они рекомендуют брать число 15-ое.

В вопросе же автора сказано:
> какое число будет через 6 месяцев например от сегодняшнего числа?
А значит ответ функции правильный.

   
 
 автор: Trianon   (10.11.2006 в 18:54)   письмо автору
 
   для: isset   (10.11.2006 в 18:20)
 

Я уже написал. Правильным ответом можно считать последний день февраля.
Либо (с некоторой натяжкой) 1 марта.
В противном случае функция вычисления даты +6 месяцев перестает быть монотонной. А это уже криминал.
Kasmanaft, спасибо ему, это наглядно продемонстрировал.

   
 
 автор: Yakor   (10.11.2006 в 18:24)   письмо автору
 
   для: isset   (10.11.2006 в 18:20)
 

вот и я о том же :)

   
 
 автор: isset   (10.11.2006 в 18:22)   письмо автору
 
   для: kasmanaft   (10.11.2006 в 12:40)
 

Ничего интересного, 1, 2, 3 февраля есть, 29, 30, 31 нет.

   

Сообщения:  [1-10]    [11-20]  [21-28] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования