@jurvrn.ru, как думаешь выбирая между твои сайтом и вот этим https://pravoved.ru/lawyers/city/voronezh/ куда пойдут люди?
@Artur_hopf, я ж предупредил чтобы не смеялись, это не сайт, это набросок, черновик. Собираю элементы, продумываю структуру... Сайт сугубо информационный. Держу на хостинге чтобы отрабатывать его в реальных условиях. PS как добавить 0 к первой цифре дня? --- Добавлено --- @Valick, пусть идут куда хотят, так как ответ постом выше, если и будет сайт в итоге, то он будет чисто локальным для города. Сайт не для людей, а именно для сообщества юристов - вот его смысл, в некоторой степени клуб.
@jurvrn.ru PHP: <?php $day = date('d'); echo $day; https://www.php.net/manual/ru/function.date.php p.s. я и не смеялся, прикольный сайтик =)
Еще 10 раз спроси, если лень перечитать тему. --- Добавлено --- @Artur_hopf, улыбку с лица сотри, а то люди не верят, что ты не шутишь. Или все же шутишь?
ещё 10 раз напишите чтобы я прочитал ) ведь сказал, что читаю, но много информации не может сразу усвоиться....только сейчас понял при чем здесь ваша "J", когда уяснил что "d" это 2 цифры. спасибо, но это wordpress, то есть не моя заслуга. Но есть ещё мега проект - сделать календарь событий для каждого пользователя. Такого плагина нет ещё вроде. Пока его не сделаю сайту придавать законченный вид не буду. Ещё регистрация в кастомной форме со второго раза срабатывает без каптчи... в общем проблем ещё много. У меня не хватает времени чтобы изучать программирование на профессиональном уровне, учусь на своих ошибках и по советам формчан если учесть что у меня код такой для дня $a=getdate(); return $a['mday'] то для двух цифр l он будет выглядеть так? - $a=getdate('d'); return $a['mday'] или $a=getdate('d'); return $a['d'] не работает ни так, ни так. Что понятно из мануала php - в массиве есть только mday, выводящая одну цифру у вас названия месяцев по русски будет?
@jurvrn.ru или ты начинаешь учится, или тебя скоро забанят: PHP: setlocale(LC_ALL, 'ru_RU.UTF-8'); echo date('d.m.Y H:i:s'); //время цифрами echo strftime("%B"); //месяц по русский https://www.php.net/manual/ru/function.strftime.php а забанят потому что тебе уже показывали как это делается: https://php.ru/forum/threads/kak-formatirovat-stil-peremennoj.79340/#post-606955
@jurvrn.ru и еще от себя добавлю, читай внимательно и запоминай. Ты создаешь свой сайт на wordpress. И сюдя по твоим вопросам ты вообще не понимаешь что это такое. Wordpressтакой каркас для блогерш и блогеров, они обычно ничерта не смыслят в программировании. И вот в нем предусмотрены плагины и на сегодняшний день на любой чих предусмотрен плагин. И у wordpressa так же есть куча своих функции, и на дату в том числе: https://wp-kama.ru/function/the_date PHP: return the_date('j F Y в H:i');// получают дату или время записи, комментария или чего-то еще return date_i18n( 'j F Y H:m:s', false ); //получим текущую дату и время https://wp-kama.ru/function/date_i18n
Я помню. Вы не думайте, что я злой. Я просто интонацию меняю, когда хочу намекнуть, что нужно ускорить усвоение Нет у getdate такого. Я вам показывал ее параметр $timestamp (по названию можно догадаться, что к управлению форматированием он не имеет отношения). Опять-таки вбиваете «php getdate» и по ссылке на php.net см. описание параметров и т.п. Уже отвечая на ваш вопрос, я сказал, что лучше взять код Sail'а. Хотя бы по кривому названию массива $monthes можно было понять, что предполагается использование вашего массива. Автор просто устранил ошибку в вашем коде, на которую я указывал ранее. Массив мог не указать, чтобы сконцентрировать ваше внимание непосредственно на решении. Повторяю, этот раздел для новичков, а не для «нулевичков». Ответы пользователей предполагают наличие у спрашивающих какой-либо нач. подготовки по программированию/пыху. Поэтому не удивляйтесь, когда вас пинают из-за отсутствия таковой.
P.S. Значение return в скобки брать не нужно. Это даже не include/require, у кот. значение часто заключают в скобки. Вы притащили на форум УГ.
@Sail, @Artur_hopf, @miketomlin, отчитываюсь об изучении ) сделал так 2-мя вариантами PHP: date_default_timezone_set('Europe/Moscow'); $ts = time(); $months=array('января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'); return date('d', $ts).' '.$months[(date('n', $ts))].date(' Y', $ts); и PHP: date_default_timezone_set('Europe/Moscow'); setlocale(LC_ALL, 'ru_RU.UTF-8'); $den = date('d'); $mes = mb_strtolower(strftime("%B")); $god = date('Y'); return $den . ' ' . $mes . ' ' . $god; выберу первый, так как там окончания месяцев правильными получаются, так как берутся из массива. Правильный выбор? --- Добавлено --- P.S. но я использую именно ваш код и второй бы раз использовал, но нужен массив слов.... всё что вывидите на сайте моя работа (тему передала на 30%, виждеты и шоркоды всё вручную написаны, плагинов много но почти ни один не вписывается в концепцию моего сайта, да и функциональны только платные плагины... поэтому 50% моего сайта написаны мной вручную честно говоря не понял в чем была ошибка - вы писали про j, но изначально там была d.... Но это уже не важно, все работает
@jurvrn.ru а этот вариант?: PHP: return date_i18n( 'j F Y ', false ); не или на крайняк так уж: PHP: date_default_timezone_set('Europe/Moscow'); setlocale(LC_ALL, 'ru_RU.UTF-8'); $date = mb_strtolower(strftime("%d %B %G")); return $date;
Я прежде там процитировал, к чему относилось мое замечание про 'j' Потом еще пояснял. Автор походу был не в курсе про 'j', поэтому использовал приведение к int для получения нат. номера дня. Вам же, как выяснилось, нат. номер не нужен.
Только все же обычно date_default_timezone_set не вызывают настолько локально. Что помешало внести исправления непосредственно в конфиг? Или хотя бы нужно сосредотачивать все ф-ции/весь код, где вызывается date_default_timezone_set, в одном месте, если не можете ограничиться однократным вызовом этой ф-ции (или многократным с постоянным параметром, т.е. константой).
что локально вызывать не совсем правильно понимаю, тем более что у меня эта функция есть в другом уже шорткоде... В кофиг не хочу потому что при обновлении wordpress файл заменится, настройка слетит... Но есть идея - возможно помещу эту функцию в function.php. Спасибо за наводку. --- Добавлено --- отличная идея! код сократиться до одной строки! Только вот если нужно будет стиль придать отдельно дню , месяцу, году то как? через <span> ?
P.S. @miketomlin, @Artur_hopf с функцией return date_i18n (жаль только что часы не идут) нет смысла использовать date_default_timezone_set('Europe/Moscow'); видимо это внутрення функция wordpress и через настройки указывается правильный часовой пояс. Но у меня есть ещё "идущие" часы на java для них нужна установка временной зоны. И на них перемещение в function.php не подействовало. Хотя этот файл подключается одним из первых в системе wordpress.
@jurvrn.ru PHP: add_action('wp_ajax_ajax_date', 'ajax_date'); add_action('wp_ajax_nopriv_ajax_date', 'ajax_date'); function ajax_date () { $date = date_i18n( 'j F Y H:m:s', false ); echo $date; die(); } add_shortcode( 'updateDate', function () { $date = date_i18n( 'j F Y H:m:s', false ); $result = "<span class='date'>{$date}<span><script> setInterval(function() { jQuery.get( '/wp-admin/admin-ajax.php?action=ajax_date', function( data ) { jQuery('span.date').html(data); }); }, 1000); </script>"; return $result; }); и просто добавь шорткод [updateDate]
@Artur_hopf, спасибо! просто для интереса - а что не так в моем коде идущих часов? как пишет @miketomlin это г/код? ) мне нужно было время с сервера, нашел такой код в интернете PHP: $time = getdate(); return ' <form name='lcs'><p><i class='fa fa-clock-o fa-lg' aria-hidden='true'></i> <strong>Точное время: </strong><input type='text' class='polein' name='lcs2'></p></form> <script> var second={$time['seconds']}; var minute={$time['minutes']}; var hour={$time['hours']}; document.lcs.lcs2.value='0'; function display(){ second++; if (second>=60){ second=0; minute++ } if (minute>=60){ minute=0; hour++ } if (hour>23){ hour=0; minute=0; second=0 } var cHour = hour; var cMinute = minute; var cSecond = second; if (second < 10) cSecond = '0' + second; if (minute < 10) cMinute = '0' + minute; if (hour < 10) cHour = '0' + hour; document.lcs.lcs2.value=cHour+':'+cMinute+':'+cSecond; setTimeout('display()',1000) } display() </script> ' а часы на PHP отстают.... посмотрите виджеты на сайте jurvrn.ru
@Artur_hopf, убьёшь девушке хостинг нафиг. Ты издеваешься, каждую секунду WordPress запрашивать ajax-ом? По опыту, это плохо кончается, особенно на дешёвых хостингах, а я почему-то думаю, что не VPS у девушки @jurvrn.ru, плохо, что большой кусок HTML вы ретурном даёте. Насколько вы изучили кодекс WordPress?
@mkramer, в моем коде вроде как время берется с сервера, а потом отсчитывается скриптом и не нагружает сервер. Значит продолжу свой использовать. Все равно в коде уважаемого @Artur_hopf идут только секунды....И я не девушка ) а куда засунуть код return ? в переменную? или правильнее вынести большой кусок html за пределы php ? (здесь кстати на форуме была эта тема поднята, так что правильнее второй вариант?)
просто оставлю эту закладку здесь: http://www.prideparrot.com/blog/archive/2011/9/how_to_display_dates_and_times_in_clients_timezone
@mkramer кстати подскажи как лучше данные с сервера обновлять. У меня на одном проекте серверное время нужно было, я таким макаром обновлял. Правда раз в минуту, ну всеже там кроме времени было еще куча данных. Вот серверный кусок которые запрашивается: PHP: public function realTimeUpdate($tpa){ ModelAlltpa::updateAllActualProduct(); ModelAlltpa::pushAllDowntime(); $lastSaveUser = ModelAuthorization::lastSaveUser(); $namePF = ModelView1::namePressForm($tpa); $getTerminal1C = ModelGet1C::getTerminal1C($tpa); $statusTPA = ModelView1::statusTPA($tpa, $getTerminal1C); $rfid = ModelView1::getRFID($tpa); $logMessage = ModelView1::logMessage($tpa, $namePF, $statusTPA); $colorWeight = ModelOperator::colorWeight($tpa); $colorDowntime = ModelAdjuster::colorDowntime($tpa); $oidButton = ModelConnection::oidButton($tpa); if($getTerminal1C !== false){ $prod = $getTerminal1C[0][0]['Product']; $planData = $getTerminal1C[1]; $plan = $getTerminal1C[0][0]['ProductPlan']; $cycle1C = $getTerminal1C[0][0]['ProductCycle']; $weight1C = $getTerminal1C[0][0]['ProductWeight']; $shift = $getTerminal1C[0][0]['Shift']; }else{ $prod = null; $planData = null; $plan = null; $cycle1C = null; $weight1C = null; $shift = null; } $result = (object)[ 'date' => date('d.m.Y H:i:s'), 'rfid' => $rfid, 'diff' => ModelGraph::createDifference($tpa), 'prod' => $prod, 'planData' => $planData, 'plan' => $plan, 'endPlan' => $endPlan = ModelGraph::endPlan($rfid, $getTerminal1C, 0), 'cycle1C' => $cycle1C, 'cycle' => ModelView1::getDuration($tpa), 'weight1C' => $weight1C, 'weight' => ModelView1::middleWeight($tpa), 'shift' => $shift, 'colorTPA' => $statusTPA, 'log' => $logMessage, 'colorWeight' => $colorWeight, 'colorDowntime' => $colorDowntime, 'oidButton' => $oidButton, 'user' => $lastSaveUser ]; return $result; } А вот клиентский: Код (Javascript): function update(){ var random = Math.round(Math.random() * (40000 - 20000) + 20000); getAjax('index.php?r=post/real-time-update&tpa='+tpa, function(data){ var json = JSON.parse(data); }); setTimeout(function() { update(); }, random); } update()
@Artur_hopf, вот мой код шорткода полностью, работает, но отстает на 3-4 секунды (в вашем идут только секунды) PHP: add_shortcode ( 'my_shortcode_liveclockserver', 'my_shortcode_liveclockserver_func' ); function my_shortcode_liveclockserver_func ( $attr, $content = null ) { date_default_timezone_set('Europe/Moscow'); $time = getdate(); return <<<HTML <style> .polein { min-width: 168px; /* Ширина поля цифр + padding */ height: 28px; /* Высота поля цифр*/ background: #edf0e6; padding: 5px; /* Поля */ border: none; /* Убираем рамку */ text-align: center; outline: none; } </style> <form name='lcs'><p><i class='fa fa-clock-o fa-lg' aria-hidden='true'></i> <strong>Точное время: </strong><input type='text' class='polein' name='lcs2'></p></form> <script> var second={$time['seconds']}; var minute={$time['minutes']}; var hour={$time['hours']}; document.lcs.lcs2.value='0'; function display(){ second++; if (second>=60){ second=0; minute++ } if (minute>=60){ minute=0; hour++ } if (hour>23){ hour=0; minute=0; second=0 } var cHour = hour; var cMinute = minute; var cSecond = second; if (second < 10) cSecond = '0' + second; if (minute < 10) cMinute = '0' + minute; if (hour < 10) cHour = '0' + hour; document.lcs.lcs2.value=cHour+':'+cMinute+':'+cSecond; setTimeout('display()',1000) } display() </script> HTML; } --- Добавлено --- @mkramer что делать с куском html?