За последние 24 часа нас посетили 67437 программистов и 3313 роботов. Сейчас ищут 799 программистов ...

Помогите написать функцию вывода даты

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

  1. enshtein

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

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    нужна функция вида:
    PHP:
    1. <?php
    2. function getNDate(time) {
    3.     ....
    4.     return $out;
    5. }
    6.  
    7. // пример вызова
    8. echo getNDate($time);
    9.  
    10. /* если $time в диапозоне сегодняшнего дня - т.е. time(); - то функция должна возвратить строку вида "9:00" (т.е. только часы и минуты)
    11. если же $time в диапозоне времени вчерашнего дня то функция должна вернуть строку вида "вчера, 13:45" */
    12. ?>
    как такое сделать?
     
  2. enshtein

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

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    и еще вопросик :)
    есть массив вида:
    $times['1225444699'] = 'Новость1'
    $times['1225444640'] = 'Новость1'
    $times['1225444789'] = 'Новость1'

    где в качестве ключа стоит время в формате метки времени timestamp
    как мне удалить из массива ключи - метки времени которых устарели на 2 дня..
    т.е. если в качестве ключа стоит время позжее сегодняшнего дня на 2-ое суток - то удаляю!
     
  3. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    без прохода массива в цикле помоему никак
     
  4. enshtein

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

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    вот что делает с нами лень - заставляет писать такие посты )))
    функцию уже написал:

    PHP:
    1. function getNDate($time) {
    2.     $today = getdate();
    3.     $today = $today['yday'];
    4.     $buf = getdate($time);
    5.     if ($buf['yday'] == $today) return date('H:i', $time);
    6.     if ($buf['yday'] == $today-1) return 'вчера, ' . date('H:i', $time);
    7.     return false;
    8. }
    9.  
    10. echo getNDate(1225444699);  // вчера, 12:18
    11. echo getNDate(1225527732); // 11:22
    может конечно криво.. но то что мне надо и работает )))
     
  5. dAllonE

    dAllonE Guest

    Ну главное что работает :)

    Хотя если добавятся еще "позавчера", "уже минула неделя", "с месяц прошло", то +3 точки выхода из функции, не очень ИМХО.