За последние 24 часа нас посетили 26868 программистов и 1819 роботов. Сейчас ищут 950 программистов ...

Высчитать дату.

Тема в разделе "PHP для новичков", создана пользователем koopakaru, 21 май 2008.

  1. koopakaru

    koopakaru Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Адрес:
    Прибалтика
    Подскажите как лучше сделать.
    Задача: имею кол-во месяцев. Нужно вывести дату в формате YYYY-mm-dd, отсчитав указанное кол-во месяцев с данного момента.
    Я подозреваю что есть функция выполняющая это, но к сожалению не нашла ее. Поэтому сделала так:

    Код (Text):
    1.  
    2. <?
    3. $warkuud="41";
    4. $yearspl= $warkuud / 12;
    5. $yearsplit= floor($yearspl);
    6. $monthpl=  $warkuud - ($yearsplit*12);
    7. $yearnow=date("Y");
    8. $kehyear=$yearnow+$yearsplit;
    9. $monthnow=date("m");
    10. $kehmonth=$monthnow+$monthpl;
    11. $day=date("d");
    12. if($kehmonth > 12)
    13.  $kehyearcomp=$kehyear + 1;
    14. $kehmonthcomp=$kehmonth - 12;
    15.  }
    16. else
    17. {
    18. $kehyearcomp=$kehyear;
    19. $kehmonthcomp=$kehmonth;
    20. }
    21.  
    22. if($kehmonthcomp < 9)
    23. {
    24. echo $kehyearcomp.".0".$kehmonthcomp.".".$day;
    25. }
    26. else
    27. {
    28. echo $kehyearcomp.".".$kehmonthcomp.".".$day;
    29. }
    30.  
    31. ?>
    Однако это не решение проблемы, так как мне нужно не просто вывести дату а сохранить ее в базу данных в формате YYYY-MM-DD.

    Просьба не пинать за такое решение - но я совсем еще начинающая в PHP, поэтому на что моих знаний хватило, то и сделала.
    Буду признательна любым вашим комментариям и советам.
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Для операций с датой лучше использовать дату в формате Unix Timestamp (это количество секунд, прошедшие с 1970 года).
    Чтобы перевести обычную дату в timestamp, воспользуйтесь функцией mktime(), далее операции с датой и получение нужного формата времени через функцию date.
     
  3. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    PHP:
    1.  
    2. <?php
    3. $warkuud=41;
    4. $time = mktime(date("H"), date("i"), date("s"), date("m")+$warkuud);
    5. echo date("Y-m-d",$time);
    6. ?>
    7.  
    Сойдёт?
     
  4. koopakaru

    koopakaru Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Адрес:
    Прибалтика
    Johnatan
    Спасибо за отличный пример. Красивая функция и главное не надо ничего выдумывать
     
  5. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0