Поиск сообщества
Показаны результаты для тегов 'время'.
Найдено: 4 результата
-
Вот нашёл хорошее решение на JQuery с обновлением как у вк! И так создадим файл time.js в папке js с таким содержимым: (function ($, moment) { $.dateFormat = function (timestamp) { if (timestamp instanceof Date) { return $.dateFormat.format(timestamp); } else if (typeof timestamp === "string") { return $.dateFormat.format($.dateFormat.parse(timestamp)); } else if (typeof timestamp === "number") { return $.dateFormat.format(new Date(timestamp)); } else { return $.dateFormat.format($.dateFormat.datetime(timestamp)); } }; var $t = $.dateFormat; $.extend($.dateFormat, { settings: { refreshMillis: 20000, todayFormat: '[сегодня в] HH:mm', yesterdayFormat: '[вчера в] HH:mm', thisYearFormat: 'D MMM в HH:mm', defaultFormat: 'D MMM YYYY в HH:mm' }, format: function (date) { var $s = $t.settings; if (!moment(date).isValid()) { return "неверное время"; } if ($t.isInThisHour(date)) { return moment(date).fromNow(); } if ($t.isToday(date)) { return moment(date).format($s.todayFormat); } if ($t.isYesterday(date)) { return moment(date).format($s.yesterdayFormat); } if ($t.isInThisYear(date)) { return moment(date).format($s.thisYearFormat); } return moment(date).format($s.defaultFormat); }, isInThisHour: function (date) { return (new Date().getTime() - date.getTime()) < 1000 * 60 * 60; }, isToday: function (date) { var today = new Date(); return date.getFullYear() == today.getFullYear() && date.getMonth() == today.getMonth() && date.getDate() == today.getDate(); }, isYesterday: function (date) { var yday = new Date(); yday.setHours(0); yday.setMinutes(0); yday.setDate(yday.getDate() - 1); if (!$t.isToday(date) && date.getTime() > yday.getTime()) { return true; } return false; }, isInThisYear: function (date) { return date.getFullYear() == new Date().getFullYear() }, datetime: function (elem) { var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title"); return $t.parse(iso8601); }, isTime: function (elem) { return $(elem).get(0).tagName.toLowerCase() === "time"; }, parse: function (iso8601) { var s = $.trim(iso8601); s = s.replace(/\.\d+/, ""); s = s.replace(/-/, "/").replace(/-/, "/"); s = s.replace(/T/, " ").replace(/Z/, " UTC"); s = s.replace(/([\+\-]\d\d)\:?(\d\d)/, " $1$2"); return new Date(s); } } ); var refreshElements = []; var intervalId = null; function startTimer(){ for(var i = 0; i < refreshElements.length; i++){ var el = refreshElements[i]; var data = el.data("dateFormat"); el.text($t(data.datetime)); } }; $.fn.dateFormat = function (action, options) { this.each(function () { var el = $(this); var data = el.data("dateFormat"); if (!data) { data = { datetime: $t.datetime(el) }; el.data("dateFormat", data); if (!$t.isTime(el)) { el.attr('datetime', $(el).attr("title")); } el.attr('title', data.datetime.toLocaleString()); if ($t.isInThisHour(data.datetime)){ refreshElements.push(el); } } var data = el.data("dateFormat"); el.text($t(data.datetime)); if ($t.settings.refreshMillis > 0) { if ($t.isInThisHour(data.datetime)) { if(!intervalId){ intervalId = setInterval(startTimer, $t.settings.refreshMillis); } } } }); }; })(jQuery, moment); $(document).ready ( function(){ $('time').dateFormat(); }); В <head> подключим: <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.1.0/moment.min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.1.0/lang/ru.min.js"></script> <script src="{theme}/js/time.js" type="text/javascript" charset="utf-8"></script> В modules/functions.php вставим это: function _fTime($time) { return date('d.m.Y H:m', strtotime($time)); } Теперь давайте научимся его использовать: В том месте где мы выводим время вставляем {time} а в php делаем так: $mytime = date('c', $timeformat); $tpl->set('{time}', '<time datetime="'.$mytime.'">'._fTime($mytime).'</time>'); Где $timeformat переменная с временем в формате 1438543024 Все!
-
Вылаживаю одну из фич из личной сборки , данная фича делает вывод время последнего входа в стиле ВК "заходил 15 минут назад". Время в таком формате выводит до того как прошел час после как у vii по стандарту "последний раз был сегодня в H:i". 1. Открываем Profile.php 2. И между //Страна и город $tpl->set('{country}', $user_country_city_name_exp[0]); $tpl->set('{country-id}', $row['user_country']); $tpl->set('{city}', $user_country_city_name_exp[1]); $tpl->set('{city-id}', $row['user_city']); и if($row['user_city'] AND $row['user_country']){ $tpl->set('[not-all-city]',''); $tpl->set('[/not-all-city]',''); } else $tpl->set_block("'\\[not-all-city\\](.*?)\\[/not-all-city\\]'si",""); заменяем все на $f = $server_time-$row["user_last_visit"]; $onlinemins = floor($f/60); if($row['user_sex'] == 1){ $lastminsex = 'заходил '; } else { $lastminsex = 'заходила '; } $val_time = array("1", "21", "31", "41", "51"); $val_time2 = array("2", "22", "32", "42", "52", "3", "23", "33", "43", "53", "4", "24", "34", "44", "54"); if (in_array($min, $val_time2)) { $lastminde = 'у'; }elseif(in_array($min, $val_time)){ $lastminde = 'ы'; } //Если человек сидит с мобильнйо версии if($row_online['user_logged_mobile']) $mobile_icon = '<img src="{theme}/images/spacer.gif" class="mobile_online" />'; else $mobile_icon = ''; if($row_online['user_last_visit'] >= $online_time) $tpl->set('{online}', $lang['online'].$mobile_icon); else { if($onlinemins >=60){ if(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', $server_time)) $dateTell = langdate('сегодня в H:i', $row_online['user_last_visit']); elseif(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', ($server_time-84600))) $dateTell = langdate('вчера в H:i', $row_online['user_last_visit']); else $dateTell = langdate('j F Y в H:i', $row_online['user_last_visit']); if($row['user_sex'] == 2) $tpl->set('{online}', 'последний раз была '.$dateTell.$mobile_icon); else $tpl->set('{online}', 'последний раз был '.$dateTell.$mobile_icon); }else{ $tpl->set('{online}', $lastminsex.$onlinemins.' минут'.$lastminde.' назад'.$mobile_icon); } } Если пишет : 4 минуТ 1минуТ и др Попробуйте этот код $f = $server_time-$row["user_last_visit"]; $onlinemins = floor($f/60); if($row['user_sex'] == 1){ $lastminsex = 'заходил '; } else { $lastminsex = 'заходила '; } if($onlinemins == 1 or $onlinemins == 21 or $onlinemins == 31 or $onlinemins == 41 or $onlinemins == 51){ $lastminde = 'у'; } elseif($onlinemins == 2 or $onlinemins == 22 or $onlinemins == 32 or $onlinemins == 42 or $onlinemins == 52 or $onlinemins == 3 or $onlinemins == 23 or $onlinemins == 33 or $onlinemins == 43 or $onlinemins == 53 or $onlinemins == 4 or $onlinemins == 24 or $onlinemins == 34 or $onlinemins == 44 or $onlinemins == 54) { $lastminde = 'ы'; } //Если человек сидит с мобильнйо версии if($row_online['user_logged_mobile']) $mobile_icon = '<img src="{theme}/images/spacer.gif" class="mobile_online" />'; else $mobile_icon = ''; if($row_online['user_last_visit'] >= $online_time) $tpl->set('{online}', $lang['online'].$mobile_icon); else { if($onlinemins >=60){ if(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', $server_time)) $dateTell = langdate('сегодня в H:i', $row_online['user_last_visit']); elseif(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', ($server_time-84600))) $dateTell = langdate('вчера в H:i', $row_online['user_last_visit']); else $dateTell = langdate('j F Y в H:i', $row_online['user_last_visit']); if($row['user_sex'] == 2) $tpl->set('{online}', 'последний раз была '.$dateTell.$mobile_icon); else $tpl->set('{online}', 'последний раз был '.$dateTell.$mobile_icon); }else{ $tpl->set('{online}', $lastminsex.$onlinemins.' минут'.$lastminde.' назад'.$mobile_icon); } } Информация Будут проблемы, что то не правильно выводит и др пишите в теме! Все! С уважением viiprogrammer! Ставим + Внимание! На бесплатных хостингах может не работать
-
Благодоря этому хаку можно устанавливать часовой пояс сайта через админку. Модуль не использует базу данных, что гарантирует рабготу без каких либо нагрузок. Цена договорная. Обращаться в ВК Стандартное время сервера/Vii Engine: Меняем часовой пояс на другой: Смотрим результат:
-
Привет всем!Сегодня у меня в сообществе в вконтакте спросили про часовые пояса(как изменить время в vii engine?). Открываем system/init.php и примерно после этих строк: //FUNC. COOKIES function clean_url($url) { if( $url == '' ) return; $url = str_replace( "http://", "", strtolower( $url ) ); $url = str_replace( "https://", "", $url ); if( substr( $url, 0, 4 ) == 'www.' ) $url = substr( $url, 4 ); $url = explode( '/', $url ); $url = reset( $url ); $url = explode( ':', $url ); $url = reset( $url ); return $url; } $domain_cookie = explode (".", clean_url( $_SERVER['HTTP_HOST'] )); $domain_cookie_count = count($domain_cookie); $domain_allow_count = -2; if($domain_cookie_count > 2){ if(in_array($domain_cookie[$domain_cookie_count-2], array('com', 'net', 'org') )) $domain_allow_count = -3; if($domain_cookie[$domain_cookie_count-1] == 'ua' ) $domain_allow_count = -3; $domain_cookie = array_slice($domain_cookie, $domain_allow_count); } $domain_cookie = ".".implode(".", $domain_cookie); define('DOMAIN', $domain_cookie); function set_cookie($name, $value, $expires) { if( $expires ) { $expires = time() + ($expires * 86400); } else { $expires = FALSE; } if( PHP_VERSION < 5.2 ) { setcookie($name, $value, $expires, "/", DOMAIN . "; HttpOnly"); } else { setcookie($name, $value, $expires, "/", DOMAIN, NULL, TRUE); } } Добавляем: date_default_timezone_set( 'Europe/Kiev' ); Вместо Europe/Kiev пишем свой часовой пояс. Карта часовых поясов Если что, вот список: gmt-11 = "Samoa"-(Pacific/Samoa) gmt-10 = "Hawaii"-(US/Hawaii) gmt-9 = "Alaska"-(US/Alaska) gmt-8 = "Los Angeles"-(America/Los_Angeles) gmt-7 = "Denver"-(America/Denver) gmt-6 = "Chicago"-(America/Chicago) gmt-5 = "New York"-(America/New_York) gmt-4 = "Caracas"-(America/Caracas) gmt-3 = "Buenos Aires"-(America/Buenos_Aires) gmt-2 = "Sao Paulo"-(America/Sao_Paulo) gmt-1 = "Azores"-(Atlantic/Azores) gmt0 = "London"-(Europe/London) gmt1 = "Berlin,Paris"-(Europe/Berlin) gmt2 = "Kyiv, Minsk"-(Europe/Kiev) gmt3 = "Moscow, Saint-Peterburg"-(Europe/Moscow) gmt4 = "Yerevan"-(Asia/Yerevan) gmt5 = "Yekaterinburg, Tashkent"-(Asia/Yekaterinburg) gmt6 = "Novosibirsk"-(Asia/Novosibirsk) gmt7 = "Krasnoyarsk, Bangkok"-(Asia/Krasnoyarsk) gmt8 = "Singapore, Hong Kong"-(Asia/Singapore) gmt9 = "Tokyo"-(Asia/Tokyo) gmt10 = "Vladivostok"-(Asia/Vladivostok) gmt11 = "Sydney"-(Australia/Sydney) gmt12 = "Kamchatka"-(Asia/Kamchatka)