Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- date_default_timezone_set('Europe/Sofia');
- $currentDate = create_time_from_date_string($_GET['currentDate']);
- $messages = explode("\n", $_GET['messages']);
- $messagesList = array();
- $mostRecentTime = 0;
- foreach ($messages as $message) {
- $startDateStr = strrpos($message, '/') + 1;
- $messageStr = trim(substr($message, 0, $startDateStr - 2));
- $dateStr = trim(substr($message, $startDateStr, strlen($message) - $startDateStr));
- $timeKey = create_time_from_date_string($dateStr);
- if ($timeKey > $mostRecentTime) {
- $mostRecentTime = $timeKey;
- }
- $messagesList[$timeKey] = $messageStr;
- }
- ksort($messagesList);
- foreach ($messagesList as $message) {
- echo '<div>' . htmlspecialchars($message) . "</div>\n";
- }
- $timespan = $currentDate - $mostRecentTime;
- $currentDate = date('d-m-Y', $currentDate);
- $mostRecentDate = date('d-m-Y', $mostRecentTime);
- $daysDiff = ((int)substr($currentDate, 0, 2)) - ((int)substr($mostRecentDate, 0, 2));
- echo '<p>Last active: <time>';
- if ($daysDiff > 1) {
- echo $mostRecentDate . '</time></p>';
- } elseif ($daysDiff == 1) {
- echo 'yesterday</time></p>';
- } else {
- if ($timespan >= 3600) {
- $timespan = (int)($timespan / 3600);
- echo $timespan . ' hour(s) ago</time></p>';
- } elseif ($timespan >= 60) {
- $timespan = (int)($timespan / 60);
- echo $timespan . ' minute(s) ago</time></p>';
- } else {
- echo 'a few moments ago</time></p>';
- }
- }
- function create_time_from_date_string($dateStr) {
- $dateArr = preg_split('/\D+/', $dateStr, -1, PREG_SPLIT_NO_EMPTY);
- if (count($dateArr) == 6) {
- return mktime($dateArr[3], $dateArr[4], $dateArr[5], $dateArr[1], $dateArr[0], $dateArr[2]);
- }
- return null;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement