За последние 24 часа нас посетили 55702 программиста и 1792 робота. Сейчас ищут 914 программистов ...

Добавление дней к дате

Тема в разделе "Прочие вопросы по PHP", создана пользователем xydens, 4 июл 2015.

  1. xydens

    xydens Новичок

    С нами с:
    4 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Приветствую, форум. Мне нужна ваша помощь. В таблице mysql есть столбец, хранящий тип DATE. В него надо занести текущую дату + ещё несколько дней, например 30. Как это реализовать?
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    есть точный ответ.
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  4. xydens

    xydens Новичок

    С нами с:
    4 июл 2015
    Сообщения:
    7
    Симпатии:
    0
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    xydens, ты дату получаешь из базы? или берешь текущую дату делаешь +30 дней и insert ?
     
  6. xydens

    xydens Новичок

    С нами с:
    4 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Второе.
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    в любом случае, теб
    Код (Text):
    1.  
    е нужно то что предложил denis01.
    вот эта строка тебе должна помочь.
    Код (PHP):
    1. date_add($date, date_interval_create_from_date_string('10 days')); 
     
  8. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
    есть же функции в mysql для работы с датами...
    DATE_ADD(NOW(),INTERVAL 30 DAYS)

    Добавлено спустя 33 секунды:
    https://dev.mysql.com/doc/refman/5.5/en/date-and-time-funct ... n_date-add

    Добавлено спустя 1 минуту 34 секунды:
    NOW() = текущее время СУБД

    Добавлено спустя 8 секунд:
    NOW() = текущее время СУБД
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Для DATE есть DATE_ADD(), проще некуда. плюсую maxmuha!

    P.S. До сих пор не знаю есть ли какая-то разница между
    Код (Text):
    1. SELECT DATE_ADD('2015-06-01', INTERVAL 1 DAY)
    и
    Код (Text):
    1. SELECT '2015-06-01' + INTERVAL 1 DAY
    )))
     
  11. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Ага, так я ему и сказал. Когда его смутило что там принимается дата в виде строчки, я привел пример, и показал какая именно строчка ему нужна оттуда. Кусочек кода потерялся куда то((
     
  12. xydens

    xydens Новичок

    С нами с:
    4 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Спасибо всем за помощь, но не могу я понять. Можете написать весь код в виде:
    Код (PHP):
    1. //magic
    2. mysql_query("INSSERT INTO table (new_date) VALUES {$newdate}");
    3.  
    $new_date - текущая дата + 30 дней.
    Спасибо.
     
  13. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    то есть свою голову совсем не хочется использовать?
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    xydens а что у тебя в $newdate? Не зная формата даты, придётся только гадать.
     
  15. xydens

    xydens Новичок

    С нами с:
    4 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    @denis01, в начале темы писал, что это вносится в mysql в столбец с типом DATE.
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. $db_date = '2015-07-31';
    2. $date_format = 'Y-m-d';
    3. $date = DateTime::createFromFormat($date_format , $db_date);
    4. $date->add(new DateInterval('P30D'));
    5. $newdate = $date->format($date_format);
    6. echo $newdate; 
     
  17. xydens

    xydens Новичок

    С нами с:
    4 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    @denis01, так мне надо чтоб сегодняшнюю дату + 30 дней.
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот на SQL как выше уже подсказали
    Код (PHP):
    1. DATE_ADD(NOW(), INTERVAL 1 DAY) 
     
  19. xydens

    xydens Новичок

    С нами с:
    4 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Спасибо.