Друзья предо мной стал вопрос о дате ... Нужно сделать так как на ask.fm -похожее видел Что бы поменять скушные циферки на "вчера" или"неделю назад " "или месяц назад " .А я кроме $date = date('Y-m-d H:i:s'); нечего не знаю... Помогите пожалуйста )
интервалы Код (PHP): function date_interval_human_text($interval, $labels = array('y' => 'г.', 'm' => 'мес.', 'd' => 'д.', 'h' => 'ч.', 'i' => 'мин.',)) { $r = array(); /* var_dump($interval); object(DateInterval)[7] public 'y' => int 0 public 'm' => int 0 public 'd' => int 9 public 'h' => int 0 public 'i' => int 33 public 's' => int 25 public 'invert' => int 1 public 'days' => int 9 * */ foreach ($labels as $key => $val) { if ($interval->$key != 0) { $r [] = $interval->$key . $val; } } if (!$r) { $r [] = $interval->s . 'сек.'; } return implode(' ', $r); } Даты Код (PHP): function HumanDatePrecise($date) { $r = false; $a = preg_split("/[:\.\s-]+/", $date); $d = time() - strtotime($date); if ($d > 0) { if ($d < 3600) { //минут назад switch (floor($d / 60)) { case 0: case 1: return "<acronym title='$date'>только что</acronym>"; break; case 2: return "<acronym title='$date'>только что</acronym>"; break; case 3: return "<acronym title='$date'>три минуты назад</acronym>"; break; case 4: return "<acronym title='$date'>четыре минуты назад</acronym>"; break; case 5: return "<acronym title='$date'>пять минут назад</acronym>"; break; default: return "<acronym title='$date'>" . floor($d / 60) . ' мин. назад</acronym>'; break; } } elseif ($d < 18000) { //часов назад switch (floor($d / 3600)) { case 1: return "<acronym title='$date'>час назад</acronym>"; break; case 2: return "<acronym title='$date'>два часа назад</acronym>"; break; case 3: return "<acronym title='$date'>три часа назад</acronym>"; break; case 4: return "<acronym title='$date'>четыре часа назад</acronym>"; break; }; } elseif ($d < 172800) { //сегодня //2011-07-14 16:20:44 // 0 1 2 3 4 5 if (date('d') == $a[2]) { return "<acronym title='$date'>сегодня в {$a[3]}:{$a[4]}</acronym>"; } if (date('d', time() - 86400) == $a[2]) { return "<acronym title='$date'>вчера в {$a[3]}:{$a[4]}</acronym>"; } if (date('d', time() - 172800) == $a[2]) { return "<acronym title='$date'>позавчера в {$a[3]}:{$a[4]}</acronym>"; } } } else { //////////////////////////////////////////////////////////////////////////////////////// // В будущем <editor-fold defaultstate="collapsed" desc="В будущем"> $d *= -1; if ($d < 3600) { //минут назад switch (floor($d / 60)) { case 0: case 1: return "<acronym title='$date'>сейчас</acronym>"; break; case 2: return "<acronym title='$date'>через две минуты</acronym>"; break; case 3: return "<acronym title='$date'>через три минуты</acronym>"; break; case 4: return "<acronym title='$date'>через четыре минуты</acronym>"; break; case 5: return "<acronym title='$date'>через пять минут</acronym>"; break; default: return "<acronym title='$date'>через " . floor($d / 60) . ' мин.</acronym>'; break; } } elseif ($d < 18000) { //часов назад switch (floor($d / 3600)) { case 1: return "<acronym title='$date'>через час</acronym>"; break; case 2: return "<acronym title='$date'>через два часа</acronym>"; break; case 3: return "<acronym title='$date'>через три часа</acronym>"; break; case 4: return "<acronym title='$date'>через четыре часа</acronym>"; break; }; } elseif ($d < 172800) { //сегодня //2011-07-14 16:20:44 // 0 1 2 3 4 5 if (date('d') == $a[2]) { return "<acronym title='$date'>сегодня в {$a[3]}:{$a[4]}</acronym>"; } if (date('d', time() - 86400) == $a[2]) { return "<acronym title='$date'>завтра в {$a[3]}:{$a[4]}</acronym>"; } if (date('d', time() - 172800) == $a[2]) { return "<acronym title='$date'>послезавтра в {$a[3]}:{$a[4]}</acronym>"; } } $d *= -1; //, В будущем </editor-fold> ////////////////////////////////////////////////////////////////////////////////////////. } $r = "{$a[2]}.{$a[1]}"; if ($a[0] != date('Y') OR $d > 0) { $r .= '.' . $a[0]; } $r .= " {$a[3]}:{$a[4]}"; $date .= ', ' . self::$weekdays[(int)date('N', strtotime($date))]; return "<acronym title='$date'>$r</acronym>"; } Размер файла http://jeffreysambells.com/2012/10/25/human-readable-filesize-php Код (PHP): function human_filesize($bytes, $decimals = 2) { $size = array('B','kB','MB','GB','TB','PB','EB','ZB','YB'); $factor = floor((strlen($bytes) - 1) / 3); return sprintf("%.{$decimals}f", $bytes/pow(1024, $factor)).@$size[$factor]; }
ого не думал так много прописовать ...можете обьяснить последнюю часть кода-зачем она вообще? и что делает)
Написано же - human_filesize, т.е. человекопонятный размер файла (т.е. в килобайтах, мегабайтах и т.д., а не в байтах)