mirror of
https://github.com/WerySkok/nativegallery.git
synced 2024-11-15 19:49:16 +03:00
50 lines
1.7 KiB
PHP
50 lines
1.7 KiB
PHP
|
<?php
|
||
|
namespace App\Services;
|
||
|
|
||
|
class Date
|
||
|
{
|
||
|
public static function zmdate($date)
|
||
|
{
|
||
|
$currentTime = time();
|
||
|
$dateDiff = $currentTime - $date;
|
||
|
|
||
|
if ($dateDiff <= 1) {
|
||
|
return "только что";
|
||
|
} elseif ($dateDiff <= 60) {
|
||
|
return $dateDiff . " секунд " . self::getAgoSuffix($dateDiff);
|
||
|
} elseif ($dateDiff <= 3600) {
|
||
|
$minutes = floor($dateDiff / 60);
|
||
|
return $minutes . " минут " . self::getAgoSuffix($minutes);
|
||
|
} elseif ($dateDiff <= 86400) {
|
||
|
$hours = floor($dateDiff / 3600);
|
||
|
return $hours . " часов " . self::getAgoSuffix($hours);
|
||
|
} else {
|
||
|
return self::formatDate($date);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private static function getAgoSuffix($value)
|
||
|
{
|
||
|
$lastDigit = $value % 10;
|
||
|
if ($lastDigit == 1 && $value != 11) {
|
||
|
return "назад";
|
||
|
} elseif (($lastDigit == 2 || $lastDigit == 3 || $lastDigit == 4) && ($value < 10 || $value > 20)) {
|
||
|
return "назад";
|
||
|
} else {
|
||
|
return "назад";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private static function formatDate($date)
|
||
|
{
|
||
|
$formattedDate = date("j F Y в H:i", $date);
|
||
|
$formattedDate = str_replace(
|
||
|
array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
|
||
|
array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"),
|
||
|
$formattedDate
|
||
|
);
|
||
|
return $formattedDate;
|
||
|
}
|
||
|
}
|
||
|
?>
|