Поточний час:
Сьогодні 25 вересня, понеділок 2017 рік
Стрічка RSS

Введіть ваш Е-mail:

Zura-Blog 2 роки 9 місяців 6 днів

Ваш ip адрес:54.162.181.75

Добрий вечір!
Ви обновили сторінку в 21 : 41
Статистика

Кількість публікацій на блозі: 365
Кількість коментарів на блозі: 100
Кількість категорій на блозі: 17
Кількість міток на блозі: 28

Zura – Blog
Яндекс.Метрика UA TOP Bloggers

realtimeПривіт всім відвідувачам Zura — Blog, продовжую розглядати в публікаціях питання які стосуються показу на сторінках годин, звісно що при показу на сторінках формату часу, в мові програмування php викорстовують функцію  “date”.

Але ця фуннкція не дає гарантії, що час у вас буде показуватись правильно, тому що для показу години вона орієнтується на час сервера, а сервер звісно що в більшості випадків, знаходиться в іншому часовому поясі.

Така проблема виникає майже в кожного, оскільки як я вже не раз відзначав в минулих публікаціях, в більшості випадків сервер знаходиться за кордоном, і година на віддаленому сервері, це сто процентів  що не буде співпадати  з  годиною вашого часового поясу.

Звідси і “косяки” в скрипті, які показують час, або саме їх призначення звязане з часом, зокрема показ на сторінках сайту хоча б взяти таких даних, як показ дати (день, місяць, рік), буде не зовсім правильний. Оскільки функція “date”, оріентується на час сервера.

Тому і наступний  день,  буде показаний на сторінках сайту,  в даті не після дванадцятої години, а після скажем для прикладу другої.

Якщо взяти іменно дані тільки для показу дати (день, місяць, рік), то такий “косяк” ще терпимий, оскільки дві години, різниця все таки не дуже буде замітною, ну  подумаєш, візьмем на приклад 21 січня, появиться не після дванадцятої години, а після другої, майже ніхто і не зверне на це уваги.

Тоді як для показу саме точного часу, це вже буде проблемою, і яку звичайно закортить вирішити.

В загальному, далі буде говоритись в цій публікації, про один із способів вирішення такої проблеми, це спосіб, в якому щоб отримати час який вас влаштовує, потрібно застосувати буде в скрипті комбінацію кодів.

Ну власне, я цю комбінацію  вже протестував, застосував для двох скриптів, в першому скрипті, скрипт призначений щоб видавати таку інформацію, як показ часу коли ви обновили сторінку, о якій годині, працює скрипт бездоганно, і видає не час сервера, а той який потрібний мені, а в другому скрипті застосовую щоб виводити привітання в потрібний проміжок дня.

Привітання типу “Добрий день”, “Добрий вечір” і т.д, цей скрипт також працює бездоганно, правда в мене чомусь на  сайті, між дванадцятою годиною ночі, і першою ночі, чомусь не появляється слово привітання “Доброї ночі”. Тільки після першої відображається.

Не розумію, чому такий глюк появляється. Оскільки остальні привітання, появляються, і появляються вчасно, після того коли проміжок часу одного вийшов,  на сторінці сайту появиться наступне, і тільки між дванадцятою годиною і першою ночі, нічого не появляється. В першій ночі зявляється вже текст  “Доброї ночі”.

Думаю про ще один скрипт, з яким можливо й “попарюсь”, в якому я також планую застосувати цю комбінацію кодів, він служить для того щоб показувати дату українською мовою, виводить письмово місяць, і день неділі.

В принципі і цих двох прикладів вважаю достатньо щоб переконатись, і всерівно висновок можна зробити тільки один, що таку комбінацію цілком можна застосовувати, повинно все працювати.

В попередній публікації, мова також йшла про застосування такої комбінації кодів, комбінація кодів використовувалась для скрипта, який має відношення до часу, щоб спрацював точний показ годин, такий який вам потрібний, правда про саму комбінацію кодів, майже ні чого і не говорилось.

Тай сама назва публікації, називається публікація “Скрипт який показує в котрій годині ви обновили сторінку“, в дійсності якщо прикинути, то за своїм змістом, зовсім не говорить про те, що в ній присутня така інформація, яка допоможе вам виставити потрібний час.

Тому і вирішив я викласти ще одну публікацію, яка буде стосуватись саме такого питання, як зробити так, щоб на сторінках сайту відображалась правильна година, це така година яка влаштовує вас, а не та яка взята з сервера.

Отож,  один з способів, це додати саме цю  частинку кодів, до вашого скрипта, тут звичайно що потрібно розбиратись в мові програмування рнр, тому що зміни в вашому скрипті, по любому потрібно буде зробити, хоча можуть і співпасти в кодах змінні, і можливо навіть і не прийдеться “паритись” по жартував 😛 . Хоча можливо й таке буває.

Отож рядок коду який допоможе виставити в коді скрипта потрібний для вас час.

$time   =   date("H:i");
$time1   =   date("H");
$time2    =   date ( "i " );
$time_s     =  23;
$timel    =   $time1    +  $time_s ;
if  ($timel    >=    24)   {  $timel    =   $timel    -  24;    }
$time   =    "$timel:$time2" ;

Розбираємо код. В першому рядку знаходиться змінна “$time”, саме в цьому рядку отримуємо той час, який використвується часовим поясом, на якому розташований сервер.

Дата отримуєтся візьмем такий синтаксис: $date = date (“параметр”) ;, візьмем для прикладу такий рядок коду, ($date = date (“H:i”);)

Порівняємо цей рядок ($date = date (“H:i”);) з рядком кодів нижче, ($time = date(“H:i”);), і побачимо різницю в змінних, в першому змінна “$date”, в дрогумо змінна “$time”.

Звичайно, для того щоб ваш скрипт спрацював, і показував той час який потрібно вам, а не час сервера, потрібно не тільки додати до коду рядки кодів вище, а також в кодах вашого скрипта, поміняти назву змінної вашиого коду, яка відповідає за отримання часу, на змінну $time”.

Наприклад в вже згадуваному рядку $date = date (“H:i”), потрібно замість змінної “$date”, виставити змінну  “$time”.

Коли поміняти назву змінних, тоді вже цей рядок буде такий, ($time = date (“”H:i””) ;), і хоча функція date буде отримувати час сервера, але завдяки цій комбінації кодів, на виході буде показувати час з різницею.

Різницю виставляється в змінній “$time_s”.

Для того щоб щось появились на сторінці якісь дані, використвують в коді оператор “echo”, далі все залежить від мети скрипта, тексту в операторі, власне яке значення оператор повинен виводити.

Наприклад: echo (“Ви обновили сторінку в $time”); — виведе час, і завдяки цій комбінації, виведе на сторінці сайту вже потрібний для вас час, а не той час, на який оріентується сервер, оскільки в більшості випадків, сервера знаходяться в інших часових поясах, тому і час на сторінках відрізняється.

Далі нижче код повністю, який буде показувати той час, який вам потрібний, за умови якщо ви виставите різницю в змінній  $time_s. Власне цей код виводить дані “Ви обновили сторінку о такій то годині”.

Я покажу в цій публікації два приклади, як можна застосовувати цю частинку кодів, щоб показувався потрібний вам час, звісно хто з вас “шарить” в рнр, тому приклади і не потрібні, але в більшості випадків подібну інформацію шукають такі відвідувачі, які ще не мають достатньої практики, в програмуванні на рнр.

Звісно, можна просто скопіювати готовий код і додати, але коли потрібно саме в своєму скрипті зробити зміни, і хто з вас  ще з подібним не стикався, отож нижче буде ще декілька прикладів, по яких вам можна буде орієнтуватись. 

код виводить дані що “Ви обновили сторінку о такій то годині”

<p>1 - код "Ви обновили сторінку о такій-то годині"</p>
<?php
$time   =   date("H:i") ;
$time1   =   date("H") ;
$time2    =   date ( " i " ) ;
$time_s     =  23;
$timel    =   $time1    +  $time_s ;
if  ($timel    >=    24)   {  $timel    =   $timel    -  24;   }
$time   =    "$timel:$time2" ;
echo ("Ви обновили сторінку в $time");
?>

На фото нижче, я пропоную переглянути вже приклад, як модифікувавши код цими рядками, можна з скрипта який показує серверний час, зробити так щоб показував потрібний для вас час. Перший показує серверний час, другий показує той час який мені потрібний, з різницею в дві години.

Скрипт який показує серверний час в першому рядку, і час який ви виставляєте самі в другому.

<p>2 - код "Який показує серверний час"</p>
<?php
$date_today = date("d | m | Y"); //присвоено день місяць рік
$today = date("G:i:s"); //присвоено година хвилина секунда [1]
echo("Сьогодні у нас: $date_today година : $today .");//Виводимо дату і годину:
?></br>
<p>3 - код "Який показує потрібний час"</p>
<?php
$date_today = date("d | m | Y"); //присвоено день місяць рік
$time   =   date("H:i") ;
$time1   =   date("H") ;
$time2    =   date ( " i " ) ;
$time_s     =  23;
$timel    =   $time1    +  $time_s ;
if  ($timel    >=    24)   {  $timel    =   $timel    -  24;   }
$time   =    "$timel:$time2" ;
echo("Сьогодні у нас: $date_today година : $time .");//Виводимо дату і годину:
?></br>

Як самі бачите, в кодах вище знаходяться два варіанти кодів, один показує час який видає сервер, а інший змінений, в який додана ця комбінація кодів, показує вже потрібний нам час. Зробити зміни дуже просто, це поміняти змінну  “$today” на змінну “$time”. Ну і звісно що, остальні рядки коду, потрібно також додати до кодів скрипта.

realtime1

На рахунок змінної “$date_today”, яка призначена для показу в цьому коді місяця і дня, чи буде показаний новий день саме після дванадцятої години ночі, чи після наприклад другої години, це також виходить після дванадцятої години ночі, правда в тому часовому поясі, де знаходиться сервер.

В нас може бути для прикладу дванадцята, а  в них десята, отож число яке покаже новий день, покаже новий день тоді, коли на часовому поясі, там де знаходиться сервер, буде дванадцята година, а не тоді коли в нас.

Різниця на моєму, в дві години,  я ще не перевіряв в цьому коді, коли буде показувати новий день, чи в дванадцятій, чи в другій, оскільки потрібно в такому разі чекати опівночі, не маю бажання, тим більши що такий “косяк”, якщо він звичайно буде, вважаю не є таким вже і замітним.

Хоча по моєму новий день, по моєму повинен би відображатись разом з дванадцятою годиною, ну не буду гадати, гаразд дочекаюсь опівночі, щоб перевірити.

realtime2

дочекався опівночі все працює окей  🙄

realtime3

Отож нижче ще один приклад коду, який я змодифікував, застосувавши також ці рядки, і все також спрацювало, і працює бездоганно.

Скрипт який виводить привітання, прада час орінтований на час сервера

<?php
$h=date('H');

if ($h>=5 && $h<=11) echo "Добрий ранок!";

if ($h>=12 && $h<=18) echo "Доброго дня!";

if ($h>=19 && $h<=24) echo "Добрий вечір!";

if ($h>=1 && $h<=4) echo "Доброї ночі!";?>

Нижче вже перероблений мною варіант, в котрому замість змінної “$h” виставлена змінна “$time”, і видалений з комбінації тих кодів, не потрібний рядок коду ($time = date(“H:i”);), хоча він в принципі і не заважає, оскільки чи з цим рядом коду, чи без нього, привітання всерівно буде показано, він просто лишній.

Змодифікований вже код скрипта, який також виводить привітання, і цей час хоча також орінтований на час сервера, але ви маєте можливість, вказати той час який вам потрібний, і тим самим отримати потрібний результат.

Скрипт який виводить привітання, прада вже в той проміжок часу, який вас влаштовує 

<?php
$time=date('H');
$time1   =   date("H");
$time2    =   date ( "i " );
$time_s     =  23;
$timel    =   $time1    +  $time_s ;
if  ($timel    >=    24)   {  $timel    =   $timel    -  24;    }
$time   =    "$timel:$time2" ;
if ($time>=5 && $time<=11) echo "Добрий ранок!";

if ($time>=12 && $time<=18) echo "Доброго дня!";

if ($time>=19 && $time<=24) echo "Добрий вечір!";

if ($time>=1 && $time<=4) echo "Доброї ночі!";?>

Час звісно що також орінтований на час сервера, але завдяки таким рядкам коду, виставивши в змінній “$time_s” потрібне значення, ви в змозі отримати потрібний для вас час, і звичайно що привітання наприклад “Добрий вечір” не буде виводитись о дванадцятій годині, а буде виводитись привітання “Доброї ночі”.

Хоча в кажного свій погляд на те коли ранок, а коли ніч, можливо для когось в дванадцятій годині ночі вважається ранком коли прокинувся після “будуна”  😀

Далі ще один варіант протестованої мною комбінації кодів, яку я застосував на цьому сайті, для показу інформації коли ви обновили сторінку, і привітання, код скрипта який виводить ці дані, цей код зроблений з двох окремих скриптів, які я зєднав в один, в результаті виводить і привітання, і інформацію о якій ви годині обновили сторінку.

Хоча можна і ці два коди зробити окремо, між ними вставити </br>, якщо потрібно щоб привітання появилось в одному рядку, а інфо що ви обновили сторінку в іншому.

Все в мене спрацювало на локальному сервері, створеному пакетом програм від “Енделс”, також працює ця комбінація, і в віджеті, завдяки плагіну. Є тільки не значний “косяк”, про який я вже згадував, чомусь між дванадцятою годиною ночі і першою, не появляється привітання

В принципі навряд чи я буду з цим бавитись, щоб виправити, оскільки такий не значний “косяк” в цьому скрипті, не замітний. І тим більше, щоб побачити чи його виправив, потрібно дочекатись опівночі.

Скрипт який виводить привітання, і інформацію о котрій годині ви обновили сторінку 

<?php
$h=date('H');

$time   =   date("H:i");
$time1   =   date("H");
$time2    =   date ( "i " );
$time_s     =  23;
$timel    =   $time1    +  $time_s ;
if  ($timel    >=    24)   {  $timel    =   $timel    -  24;    }
$time   =    "$timel:$time2" ;

if ($time>=5 && $time<=11) echo "Добрий ранок! ";

if ($time>=12 && $time<=18) echo "Доброго дня! ";

if ($time>=19 && $time<=24) echo "Добрий вечір! ";

if ($time>=1 && $time<=4) echo "Доброї ночі! ";

echo ("Ви обновили сторінку в $time");
   ?>

По суті то, такий то “косяк”, ну не є він таким вже і замітним, щоб сидіти і “паритись” з ним. Якщо розберусь в чому причина, повідомлю в цій публікації, в кінці, у якості додатка.

Можна вже й закруглятись, бачу що в цьому місяці вийшло вісім публікацій, плодовитий виявився місяць на публікації, на Zura — Blog. Мабуть цим місяцем компенсуються остальні, в яких було так, що  ледве і три получались.

В принципі все ж залежить від інтересів, і бажання. Де що іншим я тоді зацікавився, хоча і не мало відношення до веб, але також стосувалось іт – сфери, можливо  по тій тематиці буду також викладати в майбутньому публікації.

На цьому все до зустрічі !

Leave a Reply

Your email address will not be published. Required fields are marked *