За последние 24 часа нас посетил 168091 программист и 3027 роботов. Сейчас ищут 1597 программистов ...

Дата из [z] в [d.n]

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

  1. LokiFC

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

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    Уважаемые php-гуру, прошу вашей помощи.
    Я задолбался!
    У меня есть дата, которую когда-то задали способом date("z") [порядковый номер дня в году].
    Мне нужно ее переконвертировать в вид [число.месяц].
    Я пробовал несколько способов, но все они были скорее попыткой почесать левое ухо через правое плечо :roll: .
    Так вот, уважаемые php-гуру, надеясь на ваш многолетний опыт хочу попросить у вас помощи.
    Может быть вы уже сталкивались с этим и может быть даже у вас где-нибудь залежался код...)))
    Заранее спасибо)
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Это плохо :)
    А год известен?
    Если год текущий, то можно и так попробовать:
    PHP:
    1. <?php
    2. $thistime = date("z")*3600*24;
    3. $timeyear = mktime(0, 0, 0, 1, 1, 2008);
    4. echo date("d.M", ($timeyear+$thistime));
    5. ?>
     
  3. LokiFC

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

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    Мдя) Я не допер че-то до этого. Спасиб большое))))
    еще... уточнить можно?
    PHP:
    1.  
    2. <?php
    3.  $day = 256; //порядок дня в году (взял число от балды, но до 365)
    4.  $year = 2008; //год типа тоже может быть любой как я понял
    5.  $thistime = $day*3600*24;
    6.  $timeyear = mktime(0, 0, 0, 1, 1, $year); //по сути год нужен только для определения его (не)високосности, ведь так?
    7.  echo date("d.M", ($timeyear+$thistime)); // выводит 13 сентября  :D
    8. ?>
    9.  
    Все верно?
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Да, верно.
    Насчет года в mktime - не совсем. Эта функция возвращает кол-во секунд с 1970 года (UNIX timestamp называется), поэтому год в ней важен.
     
  5. marcuss

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

    С нами с:
    6 авг 2008
    Сообщения:
    54
    Симпатии:
    0
    не могли бы вы обьяснить?
    почему нельзя просто записать
    PHP:
    1. <?php
    2. echo date("d.M");
    3. ?>
    4.  
    ?
    И что задаёт второй аргумент?
     
  6. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    marcuss, потому что это вернёт текущий день и месяц. Завтра он вернёт завтрашний день и месяц. http://php.net/date
     
  7. marcuss

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

    С нами с:
    6 авг 2008
    Сообщения:
    54
    Симпатии:
    0
    Не внимательно вопрос прочёл....
     
  8. LokiFC

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

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    Kreker, просто через mktime, отсчитывая от эпохи юникс, мы, по сути, опредеяем кол-во дней в году, тем самым определяя параметр, который я в своих запутанных кодах выражал через date("L"). Я это имел ввиду. Ну, собственно это уже не важно, не грузите свой мозг =) Еще раз вам СПАСИБО за код :D