Advertisement
dimipan80

Chat Logger

Apr 28th, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.65 KB | None | 0 0
  1. <?php
  2. date_default_timezone_set('Europe/Sofia');
  3. $currentDate = create_time_from_date_string($_GET['currentDate']);
  4. $messages = explode("\n", $_GET['messages']);
  5.  
  6. $messagesList = array();
  7. $mostRecentTime = 0;
  8. foreach ($messages as $message) {
  9.     $startDateStr = strrpos($message, '/') + 1;
  10.     $messageStr = trim(substr($message, 0, $startDateStr - 2));
  11.     $dateStr = trim(substr($message, $startDateStr, strlen($message) - $startDateStr));
  12.     $timeKey = create_time_from_date_string($dateStr);
  13.     if ($timeKey > $mostRecentTime) {
  14.         $mostRecentTime = $timeKey;
  15.     }
  16.     $messagesList[$timeKey] = $messageStr;
  17. }
  18.  
  19. ksort($messagesList);
  20. foreach ($messagesList as $message) {
  21.     echo '<div>' . htmlspecialchars($message) . "</div>\n";
  22. }
  23.  
  24. $timespan = $currentDate - $mostRecentTime;
  25. $currentDate = date('d-m-Y', $currentDate);
  26. $mostRecentDate = date('d-m-Y', $mostRecentTime);
  27. $daysDiff = ((int)substr($currentDate, 0, 2)) - ((int)substr($mostRecentDate, 0, 2));
  28. echo '<p>Last active: <time>';
  29. if ($daysDiff > 1) {
  30.     echo $mostRecentDate . '</time></p>';
  31. } elseif ($daysDiff == 1) {
  32.     echo 'yesterday</time></p>';
  33. } else {
  34.     if ($timespan >= 3600) {
  35.         $timespan = (int)($timespan / 3600);
  36.         echo $timespan . ' hour(s) ago</time></p>';
  37.     } elseif ($timespan >= 60) {
  38.         $timespan = (int)($timespan / 60);
  39.         echo $timespan . ' minute(s) ago</time></p>';
  40.     } else {
  41.         echo 'a few moments ago</time></p>';
  42.     }
  43. }
  44.  
  45. function create_time_from_date_string($dateStr) {
  46.     $dateArr = preg_split('/\D+/', $dateStr, -1, PREG_SPLIT_NO_EMPTY);
  47.     if (count($dateArr) == 6) {
  48.         return mktime($dateArr[3], $dateArr[4], $dateArr[5], $dateArr[1], $dateArr[0], $dateArr[2]);
  49.     }
  50.  
  51.     return null;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement