Forum Webscript.Ru

Программирование => PHP => Тема начата: a@mail.dux.ru от 23 Декабря 2002, 18:14:42

Название: как добавить к дате месяц и 1 день?
Отправлено: a@mail.dux.ru от 23 Декабря 2002, 18:14:42
Задача такова:
есть база данных там два столбца с данными типа дата.
допустим data1 и data2

при обновлении через пхп скрипт надо к data1 прибавить месяц и один день и записать в data2
(в аспе знал такую функцию dataadd но php ничего подобного не нашел)
Как это сделать?

Спасибо
Название: как добавить к дате месяц и 1 день?
Отправлено: Меняздесьдавнонет от 23 Декабря 2002, 18:35:32
РНР тут не нужен.
update table set date1=date_add(date1, interval 1 day)

в php сложением дат занимается функция mktime
пример см в описании функции date
Название: как добавить к дате месяц и 1 день?
Отправлено: AlieN от 23 Декабря 2002, 18:43:42
RomikChef
а не вот так? :
update table set date2=date_add(date1, interval 1 day)
update table set date2=date_add(date1, interval 1 month)
Название: как добавить к дате месяц и 1 день?
Отправлено: Меняздесьдавнонет от 23 Декабря 2002, 20:05:39
да нет, одним запросом все равно
update table set date2=date_add(date_add(date1, interval 1 day), interval 1 month)
а может, как-то еще можно
там столько функций для работы с датой...
Название: как добавить к дате месяц и 1 день?
Отправлено: a@mail.dux.ru от 24 Декабря 2002, 00:50:34
ух ты, здорово! Спасибо.
сделал вот так : date_add((date_add(CURDATE(), interval 1 month) ), interval 1 day) )

Может подскажите как таким же простым способом в php вывести дату которая получиться после прибавлении к текущему времени 10 часов

Пробовал mktime но у меня ничего не вышло даже когда я хотел прибавить 1 день  

$tomorrow  = mktime (0,0,0,date("m")  ,date("d")+1,date("Y"));
Название: как добавить к дате месяц и 1 день?
Отправлено: Меняздесьдавнонет от 24 Декабря 2002, 14:07:29
а ты посмотри в примерах к функции date и mktime, ЧТО возвращает mktime и КАК это использовать.

Может быть, ты все-таки, сам научишься читать документацию, или тебя так и тыкать носом в каждую строчку?
Название: как добавить к дате месяц и 1 день?
Отправлено: a@mail.dux.ru от 24 Декабря 2002, 14:16:30
да там все как то не логично с датой. все до меня не доходит никак. я раньше на аспе програмировал. и теперь каждый раз когда берусь за пхр то удивляюсь - нахрена столько кода надо написать что бы что-то получить или к примеру узнать какое будет число если к текущей дате прибавить 10 часов. там (в аспе)это делалось одной простой функцией.
Название: как добавить к дате месяц и 1 день?
Отправлено: Меняздесьдавнонет от 24 Декабря 2002, 14:44:45
На PHP это тоже делается ОДНОЙ простой функцией.
Для того, чтобы вывести эту дату в НУЖНОМ ФОРМАТЕ, используется еще одна простая функция.

Все очень просто и логично. одна функция прибавляет, друкая - форматирует.
Название: как добавить к дате месяц и 1 день?
Отправлено: a@mail.dux.ru от 24 Декабря 2002, 15:09:34
Спасибо, но не могу сказать что ваш ответ помог.
Но возник еще один вопрос: зачем вы тратили время на ответ мне, если ничего не сказали? Не отвечали бы и все. Я бы и этим умлся.
Название: как добавить к дате месяц и 1 день?
Отправлено: Maniac от 24 Декабря 2002, 15:29:05
a@mail.dux.ru
Слушай, ну почитай ты документацию. Для того, чтобы корректно работать с датой, используй дату в формате UNIX TIMESTAMP. Что это такое и как этим пользоваться - см. функцию time().
Расшифровывая ответ RomikChef: получаешь дату в формате эпохи Юникс, прибавляешь к ней 10*60*60 и выводишь при помощи mktime()
Название: как добавить к дате месяц и 1 день?
Отправлено: a@mail.dux.ru от 24 Декабря 2002, 16:53:13
Спасибо всем за помощь.

Задача решается так
(для тех, кто ищет решение такой же проблемы:
прибавить к терущей дате 10 часов и узнать какой будет день)
Решение:
1 сначало узнаем сколько сейчас часов
$h=Date(H);
2 затем получим необходимую нам дату
$d=Date(d,mktime ($h+10,0,0,date("m")  ,date("d"),date("Y")) );

Боюсь, что с помощью одного только мануала до такого не додуматься.
Название: как добавить к дате месяц и 1 день?
Отправлено: Maniac от 24 Декабря 2002, 17:02:11
Цитировать
Боюсь, что с помощью одного только мануала до такого не додуматься.

Угу. Если извращаться. А если проще, то:

$d=mktime(\'H:i:s j:n:y\',time()+10*60*60);

Имеем точную дату в формате ЧЧ:ММ:СС ДД:ММ:ГГ через десять часов после текущего времени.
Большая часть времени ушла на то, чтобы выцепить из мануала буковки для mktime();

[OFF]И пусть тебе будет стыдно :D [/OFF]
Название: как добавить к дате месяц и 1 день?
Отправлено: Меняздесьдавнонет от 24 Декабря 2002, 18:59:31
a@mail.dux.ru, дурилка картонная, я отвечал ровно на то, что ты спрашивал.
Не нравятся ответы? Научись задавать вопросы.
Мое последнее сообщение - ответ не на вопрос про дату, а на нытье про АСП.
А ответ был выше. Но ты, судя по всему, прекрасно умеешь стонать и жаловаться, а вот ЧИТАТЬ у тебя получается с большим трудом.
Если бы умел читать, то все бы сделал еще после моего первого ответа, и сделал бы вот так:
$d=date("d", mktime(date("H")+10));
Думать тут не надо. Надо просто прочесть в документации описание функций, и правильно воспользоваться ими.
И строки надо брать в кавычки.
Название: как добавить к дате месяц и 1 день?
Отправлено: a@mail.dux.ru от 24 Декабря 2002, 23:49:04
я вот читал в правилах, что за оскорбления могут и отключть. Но на фанатов форума наверное это правило не действует?

Про асп и пхп: Пхп имеет много хороших свойств и функций.
Но при изучении он здорово уступает аспу.
На аспе все логично и понятно. А пхп видать был написан не для написания веб сайтов  а для чего то другого. или написан твердолобым. А потом всячески был дороботан. Но это не значит что я от него откажусь :)
А документация по пхп - дерьмо. надо писать так что бы и баранам было понятно. а если баран не понял - плохая документация. Вот так! (это мнение моих профессоров в институте где я учился)

И вообще, RomikChef  я почитал вашу переписку с другими участниками форума. Оскорбления вместо ответов на вопросы - обячное явление. ЗАЧЕМ ТРАТИТЕ ВРЕМЯ?
Хотя мне вы помогли. За это спасибо. ;)
Название: как добавить к дате месяц и 1 день?
Отправлено: Меняздесьдавнонет от 25 Декабря 2002, 00:25:46
Исключительно из наивной веры в человечество.
В то, что даже самый темный и ленивый человек, не могущий и шагу ступить без помощи окружающих, может научиться делать что-то самостоятельно.
Что человека можно научить задавать вопросы.
Хотя именно на тебе я потерял время. Ты всеми силами отпихиваешься, когда тебе дают СПОСОБ решения ВСЕХ задач и хочешь только конкретного ответа на сиюминутную.

Про PHP ты ошибаешься, по темноте своей, но спорить с тобой об этом бессмысленно.

Документация как справочник - вполне выполняет свои функции. Обучающие на нее и не возлагались. По поводу баранов - это желательно. Но ТРЕБОВАТЬ что-то ты можешь либо от корпорации майкрософт, которая с тебя денег слупила, или от своих детей. А если тебе не нравится документация на PHP... Тебе подсказать, куда ты можешь пойти со своими претензиями?
Название: как добавить к дате месяц и 1 день?
Отправлено: a@mail.dux.ru от 25 Декабря 2002, 01:25:32
а вот я не буду Вас оскорблять. т.к. я человек воспитанный. и так поступают умные люди.
Название: как добавить к дате месяц и 1 день?
Отправлено: Tronyx от 25 Декабря 2002, 09:53:31
[тема закрыта]