Вход Регистрация
Файл: inc/daytime.php
Строк: 80
<?php
// Временные зоны по смещению (-11;+14)
define('TIMEZONES', [
    
'GMT-11:00' => 'Pacific/Pago_Pago',
    
'GMT-10:00' => 'Pacific/Tahiti',
    
'GMT-09:30' => 'Pacific/Marquesas',
    
'GMT-09:00' => 'Pacific/Gambier',
    
'GMT-08:00' => 'America/Los_Angeles',
    
'GMT-07:00' => 'America/Yellowknife',
    
'GMT-06:00' => 'America/Chicago',
    
'GMT-05:00' => 'Pacific/Easter',
    
'GMT-04:00' => 'Atlantic/Bermuda',
    
'GMT-03:30' => 'America/St_Johns',
    
'GMT-03:00' => 'Atlantic/Stanley',
    
'GMT-02:00' => 'Atlantic/South_Georgia',
    
'GMT-01:00' => 'Atlantic/Cape_Verde',
    
'GMT+00:00' => 'UTC',
    
'GMT+01:00' => 'Europe/Zurich',
    
'GMT+02:00' => 'Europe/Zaporozhye',
    
'GMT+03:00' => 'Europe/Moscow',
    
'GMT+03:30' => 'Asia/Tehran',
    
'GMT+04:00' => 'Asia/Dubai',
    
'GMT+04:30' => 'Asia/Kabul',
    
'GMT+05:00' => 'Asia/Yekaterinburg',
    
'GMT+05:30' => 'Asia/Kolkata',
    
'GMT+05:45' => 'Asia/Kathmandu',
    
'GMT+06:00' => 'Asia/Omsk',
    
'GMT+06:30' => 'Indian/Cocos',
    
'GMT+07:00' => 'Asia/Novosibirsk',
    
'GMT+08:00' => 'Australia/Perth',
    
'GMT+08:30' => 'Asia/Pyongyang',
    
'GMT+08:45' => 'Australia/Eucla',
    
'GMT+09:00' => 'Asia/Tokyo',
    
'GMT+09:30' => 'Australia/Darwin',
    
'GMT+10:00' => 'Australia/Brisbane',
    
'GMT+10:30' => 'Australia/Broken_Hill',
    
'GMT+11:00' => 'Australia/Sydney',
    
'GMT+12:00' => 'Pacific/Wallis',
    
'GMT+13:00' => 'Pacific/Fiji',
    
'GMT+13:45' => 'Pacific/Chatham',
    
'GMT+14:00' => 'Pacific/Tongatapu'
]);
// Валидация даты
function validateDate($date, $format = 'Y-m-d H:i:s') {

    
$d = DateTime::createFromFormat($format, $date);

    return (
$d && $d->format($format) == $date) ? $d->getTimestamp() : 0;

}
// Проверка Timezone ID
function isAvailableTimezone($timezone) {

    try {

        
$date = new DateTimeZone($timezone);

        return 
true;

    } catch (
Exception $e) {

        return 
false;

    }

}
// Аналог mktime() только с установлением временной зоны
function getTimeByTimezone($timezone, $hour = 0, $minut = 0, $second = 0) {

    
// Объект класса DateTime
    
$date = new DateTime;

    
// Устанавливаем временную зону
    
$date->setTimezone(new DateTimeZone($timezone));

    
// Задаем время
    
$date->setTime($hour, $minut, $second);

    
// Возвращаем метку времени Unix
    
return $date->getTimestamp();

}
// Остаток времени
function restime($sec) {

    
$sec = intval($sec);

    
$rest = 0;
    
$year = 3600 * 24 * 365;
    
$month = 3600 * 24 * 30;
    
$day = 3600 * 24;
    
$hour = 3600;
    
$min = 60;

    if (
$sec >= $year) {

        
$col = $sec / $year;
        
$full_time = quantDec(intval($col), ['год', 'года', 'лет']);
        
$rest += $sec % $year;

    } elseif (
$sec >= $month) {

        
$col = $sec / $month;
        
$full_time = quantDec(intval($col), ['месяц', 'месяца', 'месяцев']);
        
$rest += $sec % $month;

    } elseif (
$sec >= $day) {

        
$col = $sec / $day;
        
$full_time = quantDec(intval($col), ['день', 'дня', 'дней']);
        
$rest += $sec % $day;

    } elseif (
$sec >= $hour) {

        
$col = $sec / $hour;
        
$full_time = quantDec(intval($col), ['час', 'часа', 'часов']);
        
$rest += $sec % $hour;

    } elseif (
$sec >= $min) {

        
$col = $sec / $min;
        
$full_time = quantDec(intval($col), ['минута', 'минуты', 'минут']);
        
$rest += $sec % $min;

    } else {

        
$full_time = quantDec($sec, ['секунда', 'секунды', 'секунд']);

    }

    
$rest = $rest > 0 ? ', ' . restime($rest) : NULL;
    
$full_time.= $rest;

    return 
$full_time;

}
// Обработка времени
function daytime($var) {

    
$date = date('d.m.Y', $var);
    
$time = date('H:i', $var);
    
$hour = date('H', $var);
    
$minut = date('i', $var);

    if (
$date == date('d.m.Y')) {

        if (
$time == date('H:i')) {

            
$full_time = 'Только что';

        } elseif (
$hour == date('H')) {

            
$full_time = quantDec(date('i') - $minut, ['минуту', 'минуты', 'минут']) . ' назад';

        } else {

            
$full_time = date('Сегодня в H:i', $var);

        }

    } elseif (
$date == date('d.m.Y', time() - 3600 * 24)) {

        
$full_time = date('Вчера в H:i', $var);

    } elseif (
$date == date('d.m.Y', time() - 3600 * 24 * 2)) {

        
$full_time = date('Позавчера в H:i', $var);

    } elseif (
$date == date('d.m.Y', time() + 3600 * 24)) {

        
$full_time = date('Завтра в H:i', $var);

    } elseif (
$date == date('d.m.Y', time() + 3600 * 24 * 2)) {

        
$full_time = date('Послезавтра в H:i', $var);

    } else {

        
$full_time = date('d.m.Y в H:i', $var);

    }

    return 
$full_time;

}
Онлайн: 3
Реклама