Ако забележите, че часът на вашия сайт не съответства на вашата часова зона и искате да го коригирате, има няколко начина да направите това. Повечето услуги за споделен хостинг забраняват редактирането на този файл, но не се отчайвайте, можете да постигнете същия резултат, като направите някои промени във файла .htaccess. IN това ръководствоще научите как да промените часовата зона на вашия сайт.
Преди да започнете това ръководство, ще ви трябва следното:
Файл .htaccessе в каталога public_html. Можете да го отворите с Файлов мениджър в контролния панел на вашия хостинг или като се свържете с вашия сметкачрез FTP клиент (например FileZilla). Тези ръководства обхващат подробно двата метода:
Списък на всички поддържани часови зони може да бъде намерен на този сайт.
Първо изберете вашия регион.
Сега изберете часовата зона, която искате да използвате. В нашия случай ще изберем Европа/Москва.
След като разберете формата на вашата часова зона, отворете файла .htaccess. След това добавете следния код в най-горната част на файла .htaccess:
Php_value date.timezone "Европа/Москва"
ВАЖНО! Вместо Европа/Москва въведете желаната часова зона.
Поздравления, успешно променихте часовата зона на вашия сайт!
Този бърз урок ви показа как да промените часовата зона на уебсайта си чрез .htaccess. Сега не е нужно да се притеснявате за грешното време на уебсайта си.
Това е кратка статия за това как да работите с часови зони, когато съхранявате стойности за дата/час в база данни. Базата данни или езикът за програмиране, който решите да използвате, не е критичен, тъй като явленията, описани в статията, са универсални. Ще покажа моите действия, използвайки примера за използване на комбинация от MySQL и PHP. Проблемът, свързан с часовите зони, е доста тривиален. Много хора често забравят за тяхното съществуване, а някои ги смятат за нещо прекалено сложно. Обикновено, когато настройвате база данни или използвате услуга за уеб хостинг, вашите часови зони са конфигурирани по подразбиране. Настройките по подразбиране са добри, ако работите с един сървър, но какво ще стане, ако решите да го преместите?
Същият въпрос е логичен, ако имате няколко сървъра на различни места.
Вместо да съхранявате часови зони с всяка дата, по-добре е да го базирате на стандартно време и да свържете всичките си дати с него. Този метод ви позволява да промените към стандартно време, преди стойността да бъде съхранена в базата данни. Като цяло е добра идея просто да използвате UTC +00:00.
Ако искаме да имаме пълен контрол върху датата и часа, можем да изградим функцията по следния начин:
функция get_date($date) ( date_default_timezone_set("EST"); $date = date("Y-m-d H:i:s", strtotime($date)); date_default_timezone_set("UTC"); върне $date; )
В MySQL това се прави чрез задаване на UTC отместването, което може да се направи също толкова лесно, колкото беше в PHP, като се направят следните промени:
часова зона по подразбиране = "+00:00"
За щастие, MySQL предоставя удобна функция, която ни дава възможност лесно да актуализираме съществуващите часови зони.
ЗАБЕЛЕЖКА: Ако имате времеви отпечатъци, те първо трябва да бъдат актуализирани.
Можем да търсим във всички полета за дата и час в нашата база данни, като използваме следната заявка:
SELECT * FROM `information_schema`.`COLUMNS` WHERE `TABLE_SCHEMA`="име_на_таблица" AND (`DATA_TYPE`="timestamp" OR `DATA_TYPE`="datetime" OR `DATA_TYPE`="date");
От тук можем да използваме следната заявка, за да актуализираме датите/часовете в нашите таблици:
UPDATE `table_name` SET `timestamp`=CONVERT_TZ(`timestamp`, "-05:00", "+00:00");
Къде -05:00
- текущата часова зона във формата, в който се съхранява времето (както в предишния случай, това се отнася за източната). Часова зона +00:00
, в който искаме да конвертираме, в този случай се отнася за UTC.
Ако в процеса на управление на виртуален хостинг има нужда от промяна на часовата зона по подразбиране, това действие може лесно да се извърши в няколко стъпки, които са описани по-долу.
За да промените часовата зона, отидете на cPanel -> Софтуер -> Изберете PHP версия -> Преминете към PHP опции.
Следващата стъпка е да промените стойността на променливата дата.часова зонакъм часовата зона, от която се нуждаете. Можете да намерите списък с налични часови зони в последния параграф на статията.
След извършване на необходимите промени е важно да кликнете върху бутона „Запазване на промените“, който се намира в долната част на страницата PHP селектор.
За да сте сигурни, че зададената стойност на часовата зона е приложена, можете да използвате функцията PHP phpinfo(), който показва информация за всички зададени параметри php. За да направите това, създайте в public_htmlщракнете върху бутона "файл"в менюто на диспечера.
След това запишете файла и го отворете в браузъра си. IN в този примерфайлът ще бъде достъпен на:
http://main_domain/phpinfo.php
На страницата, която се отваря, намерете секцията дата, който ще съдържа таблица със стойността на текущата часова зона. В този случай горната зона се показва Европа/Киев.
Това завършва процеса на промяна на часовата зона.
Освен това по-долу прилагаме списък с възможни стойности на часовата зона:
Африка/Кайро Африка/Казабланка Африка/Хараре Африка/Монровия Африка/Найроби Америка/Богота Америка/Буенос_Айрес Америка/Каракас Америка/Чихуахуа Америка/Ла_Паз Америка/Лима Америка/Мазатлан Америка/Мексико_Сити Америка/Монтерей Америка/Сантяго Америка/Тихуана Азия/ Алмати Азия/Багдад Азия/Баку Азия/Банкок Азия/Чонгкинг Азия/Дака Азия/Хонконг Азия/Иркутск Азия/Джакарта Азия/Йерусалим Азия/Кабул Азия/Карачи Азия/Катманду Азия/Колката Азия/Красноярск Азия/Куала_Лумпур Азия/Кувейт Азия /Магадан Азия/Мускат Азия/Новосибирск Азия/Рияд Азия/Сеул Азия/Сингапур Азия/Тайпе Азия/Ташкент Азия/Тбилиси Азия/Техеран Азия/Токио Азия/Улан Батор Азия/Урумчи Азия/Владивосток Азия/Якутск Азия/Екатеринбург Азия/Ереван Atlantic/Azores Atlantic/Cape_Verde Atlantic/Stanley Australia/Adelaide Australia/Brisbane Australia/Canberra Australia/Darwin Australia/Hobart Australia/Melbourne Australia/Perth Australia/Sydney Canada/Atlantic Canada/Newfoundland Canada/Saskatchewan Europe/Amsterdam Europe/Athens Europe/ Белград Европа/Берлин Европа/Братислава Европа/Брюксел Европа/Букурещ Европа/Будапеща Европа/Копенхаген Европа/Дъблин Европа/Хелзинки Европа/Истанбул Европа/Киев Европа/Лисабон Европа/Любляна Европа/Лондон Европа/Мадрид Европа/Минск Европа/Москва Европа /Париж Европа/Прага Европа/Рига Европа/Рим Европа/Сараево Европа/Скопие Европа/София Европа/Стокхолм Европа/Талин Европа/Виена Европа/Вилнюс Европа/Волгоград Европа/Варшава Европа/Загреб Гренландия Пасифик/Окланд Пасифик/Фиджи Пасифик/ Гуам Пасифик/Мидуей Пасифик/Порт_Морсби САЩ/Аляска САЩ/Аризона САЩ/Централна САЩ/Източна САЩ/Източна Индиана САЩ/Хавай САЩ/Планински САЩ/Тихоокеански регион САЩ/Самоа
Искате ново име за уебсайта си? Предлага се от нас
Задаването на часовата зона (по подразбиране) е много необходимо за правилната обработка на данните. Тази статия, Задаване на часова зона в php.ini, ще ви помогне да научите как можете да зададете часовата зона в PHP конфигурационния файл (php.ini) или във всеки PHP скрипт за временно използване.
За да зададете часовата зона по подразбиране за вашата PHP среда, следвайте тези 4 прости стъпки.
1. Трябва да се намери конфигурационен файл php.ini и това може да се направи:
# find / -type f -name php.ini
По подразбиране php.ini се намира в:
За CentOS, RedHat или Fedora ще има:
/etc/php.ini
За Ubuntu, Debian или LinuxMint ще има:
/etc/php5/apache2/php.ini
2. Следващата стъпка е да търсите часови зони (за вашето местоположение), за това трябва да посетите сайта и да намерите вашата зона за php:
3. Регистрирайте намерената зона във файла php.ini. Например ще взема моята зона – „Европа/Киев“. Отворете конфигурационния файл и направете промени:
[...] date.timezone = "Европа/Киев" [...]
ВНИМАНИЕ! Потърсете опцията "date.timezone" в този файл, може би този параметървече регистриран.
4. Рестартирайте уеб сървъра:
# услуга httpd рестартиране
# услуга apache2 рестартиране
Ако е друг сървър (nginx, tomcat, lighttpd), рестартирайте го.
Можете също да посочите този параметър в самия php файл, както следва:
Настройката на часова зона в php.ini е завършена.
Понякога възниква ситуация, че текущото време на сървъра не съответства на текущата ви часова зона или на часовата зона на региона, към който е насочен вашият сайт.
За да стане ясно, нека ви напомня: Русия е много голяма географски и не всеки има нужда сайтовете им да „живеят“ според московското време. Например Урал, Сибир, Далечния изток и др.
Сървърите на най-популярните руски хостинг доставчици се намират на технологични сайтове в Москва и Санкт Петербург и по подразбиране са конфигурирани, разбира се, за московската часова зона. Сървърът не може автоматично да се приспособи към вашето текущо местоположение и да коригира системния часовник. Следователно работата на функциите за дата и час на сайта може да не е напълно правилна. Естествено, сега не говорим за CMS, в който настройката на часовата зона обикновено присъства директно в администраторския интерфейс.
Първо проверете текущото състояние с помощта на PHP код:
ехо ini_get("date.timezone");Добре е, ако имате собствен сървър и имате достъп до php.ini, където можете да зададете желаната часова зона и да я забравите. Например по този начин:
Date.timezone = Европа/Москва
Ако обаче сървърът хоства няколко проекта, които трябва да поддържат различни часови зони, тогава е по-добре да не правите това. В този случай би било по-правилно да задавате часови зони само за проекти със същата часова зона.
включено виртуален хостинг, най-често няма достъп до конфигурациите на сървъра.Ето защо, първо, опитайте да зададете часовата зона, като използвате .htaccess. Просто намерете или създайте файл .htaccess в корена на вашия сайт и добавете следния ред към него:
Php_value date.timezone "Европа/Москва"
Ако методът не работи, тогава ще използваме функцията date_default_timezone_set(), която задава часовата зона по подразбиране за всички функции за дата и час. За да направите това, просто трябва да добавите следния ред някъде в началото на скрипта:
Date_default_timezone_set("Европа/Москва");
естествено, Европа/Москвапромени в часовата зона, от която се нуждаете. За територията на Руската федерация PHP поддържа следните часови зони:
Можете да видите списък с всички налични часови зони, като следвате връзката или изпълните команда, която ще ви върне списък с часови зони, налични на вашия сървър.
Print_r(DateTimeZone::listIdentifiers());