დროის ზონის დაყენება PHP-ში. დროის ზონების სწორი ხედი PHP Php დროის ზონაში

25.10.2021

თუ შეამჩნევთ, რომ თქვენს საიტზე დრო არ ემთხვევა თქვენს დროის სარტყელს და გსურთ მისი გამოსწორება, ამის გაკეთების რამდენიმე გზა არსებობს. საერთო ჰოსტინგის სერვისების უმეტესობა კრძალავს ამ ფაილის რედაქტირებას, მაგრამ არ დაიდარდოთ, თქვენ შეგიძლიათ მიაღწიოთ იმავე შედეგს .htaccess ფაილში გარკვეული ცვლილებების შეტანით. IN ამ სახელმძღვანელოსთქვენ ისწავლით როგორ შეცვალოთ თქვენი საიტის დროის სარტყელი.

სანამ ამ სახელმძღვანელოს დაიწყებთ, დაგჭირდებათ შემდეგი:

  • წვდომა ჰოსტინგის მართვის პანელზე ან FTP-ზე

ნაბიჯი 1 - იპოვეთ და შეცვალეთ .htaccess ფაილი

ფაილი .htaccessარის კატალოგში public_html. თქვენ შეგიძლიათ გახსნათ იგი ფაილების მენეჯერი თქვენს ჰოსტინგის მართვის პანელში ან თქვენსთან დაკავშირებით ანგარიში FTP კლიენტის საშუალებით (მაგალითად, FileZilla). ეს სახელმძღვანელო დეტალურად მოიცავს ორივე მეთოდს:

ნაბიჯი 2 - სწორი დროის ზონის პოვნა

ყველა მხარდაჭერილი დროის ზონების სია შეგიძლიათ იხილოთ ამ საიტზე.

პირველ რიგში, აირჩიეთ თქვენი რეგიონი.

ახლა აირჩიეთ დროის ზონა, რომლის გამოყენებაც გსურთ. ჩვენს შემთხვევაში ჩვენ ვირჩევთ ევროპას/მოსკოვს.

ნაბიჯი 3 - დროის ზონის დაყენება .htaccess-ის საშუალებით

მას შემდეგ რაც შეიტყობთ თქვენი დროის ზონის ფორმატს, გახსენით ფაილი .htaccess. ამის შემდეგ, დაამატეთ შემდეგი კოდი ფაილის ზედა ნაწილში .htaccess:

Php_value date.timezone "ევროპა/მოსკოვი"

მნიშვნელოვანია! ევროპის/მოსკოვის ნაცვლად, შეიყვანეთ თქვენთვის საჭირო დროის ზონა.

გილოცავთ, თქვენ წარმატებით შეცვალეთ თქვენი საიტის დროის სარტყელი!

დასკვნა

ეს სწრაფი გაკვეთილი გაჩვენეთ, თუ როგორ შეცვალოთ დროის სარტყელი თქვენს ვებსაიტზე .htaccess-ის საშუალებით. ახლა თქვენ არ უნდა ინერვიულოთ არასწორ დროს თქვენს ვებსაიტზე.


ეს არის მოკლე სტატია იმის შესახებ, თუ როგორ უნდა ვიმუშაოთ დროის ზონებთან მონაცემთა ბაზაში თარიღის/დროის მნიშვნელობების შენახვისას. მონაცემთა ბაზა ან პროგრამირების ენა, რომლის გამოყენებასაც გადაწყვეტთ, არ არის კრიტიკული, რადგან სტატიაში აღწერილი ფენომენები უნივერსალურია. მე ვაჩვენებ ჩემს მოქმედებებს MySQL-ისა და PHP-ის კომბინაციის გამოყენების მაგალითის გამოყენებით. დროის ზონებთან დაკავშირებული პრობლემა საკმაოდ ტრივიალურია. ბევრს ხშირად ავიწყდება მათი არსებობა, ზოგი კი მათ რაღაც ზედმეტად რთულად თვლის. როგორც წესი, როდესაც თქვენ შექმნით მონაცემთა ბაზას ან იყენებთ ვებ ჰოსტინგის სერვისს, თქვენი დროის ზონები კონფიგურირებულია ნაგულისხმევად. ნაგულისხმევი პარამეტრები კარგია, თუ თქვენ მუშაობთ ერთ სერვერზე, მაგრამ რა მოხდება, თუ გადაწყვეტთ მის გადატანას?

იგივე კითხვა ლოგიკურია, თუ თქვენ გაქვთ რამდენიმე სერვერი სხვადასხვა ადგილას.
იმის ნაცვლად, რომ შეინახოთ სასაათო სარტყლები თითოეულ თარიღთან, სჯობს ის დაეყრდნოთ სტანდარტულ დროს და ყველა თქვენი თარიღი დაუკავშიროთ მას. ეს მეთოდი საშუალებას გაძლევთ შეცვალოთ სტანდარტული დრო, სანამ მნიშვნელობა შეინახება მონაცემთა ბაზაში. ზოგადად, უბრალოდ გამოყენება კარგი იდეაა UTC +00:00.

რა არის UTC

UTC ნიშნავს კოორდინირებულ უნივერსალურ დროს და არის გრინვიჩის საშუალო დროის (GMT) მემკვიდრე. ორი ფორმატი თითქმის იდენტურია, მაგრამ UTC ითვლება მიღებულ სტანდარტად. ზოგადად, UTC დაფუძნებულია 40 სხვადასხვა დროის ზონაზე. ჩვეულებრივ, 00:00 საათი უნდა იყოს საწყისი წერტილი UTC-ში. საერთო ჯამში არის 12 ძირითადი დროის ზონა, როგორც დადებითი, ასევე უარყოფითი მნიშვნელობებით, ასევე რამდენიმე დამატებითი დროის ზონა, როგორიცაა ნახევარსაათიანი. UTC +04:30. იდეა არის ის, რომ თუ თქვენ გაქვთ დროის ზონა UTC -05:00, მაშინ საწყისს მოგიწევთ 5 საათის გამოკლება UTC +00:00სასურველი მორგების მისაღწევად. ანუ, თუ ეს არის საღამოს 14:00 (ან საღამოს 2 საათი) და თქვენი დროის ზონა UTC-05:00(EST ან აღმოსავლეთის დროის ზონა), შემდეგ UTC +00:00უდრის 19:00 საათს (ან საღამოს 7 საათს).
  • მსოფლიო დროის ზონების გრაფიკული წარმოდგენა (ვიკიპედია)
  • დროის სარტყელის აბრევიატურების სია (ვიკიპედია)

დროის შენახვა UTC +00:00 ფორმატში

პირველი, რაც უნდა გავაკეთოთ, არის გადავწყვიტოთ რომელი დროის ზონა გამოვიყენოთ ყველა ჩვენი მნიშვნელობის შესანახად. უაღრესად გირჩევთ მის მიღებას საფუძვლად UTC +00:00- რაიმე განსაკუთრებული მიზეზის გარეშე, გარდა იმისა, რომ ადვილი დასამახსოვრებელია და 0 წარმოადგენს იდეალურ მიმართულ წერტილს. რადგან ვიცით, რომ ყველა თარიღი მითითებულია UTC +00:00, ბევრად უფრო ადვილი ხდება თითოეული მომხმარებლისთვის შესაბამისი დროის წარმოდგენა მათი პირადი დროის ზონებიდან გამომდინარე. მას შემდეგ, რაც მომხმარებელი შეარჩევს (ან ჩვენ ავტომატურად გამოვავლენთ) მის სასაათო სარტყელს, ამ მომხმარებლისთვის შესაბამისი დროის ჩვენება ჩვეულებრივი ხდება.

ნაგულისხმევი დროის ზონის დაყენება

თუ ვივარაუდებთ, რომ ჩვენი ყველა თარიღი/დრო ინახება UTC-ში, ჩვენ შეგვიძლია უბრალოდ დავაყენოთ ნაგულისხმევი დროის ზონა, რომელიც გამოყენებული იქნება ყოველ ჯერზე ჩვენებისთვის. ეს ავტომატურად შეარჩევს თარიღს და დროს კონკრეტული მომხმარებლისთვის. PHP-ში ყველაფერი რაც უნდა გავაკეთოთ არის დროის სარტყელის დაყენება, ასე:
date_default_timezone_set ("EST");
ჩვენ შეგვიძლია ამის გაკეთება ზოგიერთ ინიციალიზაციის ბლოკში, ჩვენი კოდის დასაწყისში და დავასრულეთ: ყველა თარიღი სათანადოდ იქნება ნაჩვენები იმ დროის სარტყელისთვის, რომელშიც მომხმარებელი იმყოფება.

თუ გვსურს სრული კონტროლი გვქონდეს თარიღსა და დროს, ჩვენ შეგვიძლია ავაშენოთ ფუნქცია ასე:
ფუნქცია get_date ($date) ( date_default_timezone_set ("EST"); $date = თარიღი ("Y-m-d H:i:s", strtotime($date)); date_default_timezone_set ("UTC"); დააბრუნეთ $date; )

PHP-ის დაყენება UTC +00:00-ისთვის

რა თქმა უნდა, ყველაფერი ასე მარტივი არ იქნებოდა, ჩვენი სისტემის კონფიგურაცია რომ არ გვქონდეს UTC ნაგულისხმევ დროის სარტყლად გამოსაყენებლად. დარწმუნებული ვარ, რომ ეს შეიძლება გაკეთდეს ისევე, როგორც სხვა ენებზე, მაგრამ PHP ასე აკეთებს:
date.timezone = UTC
ახლა, როდესაც ჩვენ ვიყენებთ ისეთ რამეებს, როგორიცაა ფუნქცია დრო (), ეს ავტომატურად გვაძლევს UTC დროს შესაბამისი ოფსეტურით ჩვენი სერვერის დროის მიხედვით. თუ გვინდა დავაყენოთ თარიღები მონაცემთა ბაზაში, როგორიცაა MySQL, ჩვენ ამას გავაკეთებთ:
date ("Y-m-d H:i:s", time());
თუ ჩვენ არ გვქონდა წვდომა PHP კონფიგურაციის შეცვლაზე, მაშინ ხელით უნდა დავაყენოთ დრო თარიღის დაყენებისას, ასე:
date("Y-m-d H:i:s", time() - date("Z"));

MySQL-ის დაყენება UTC +00:00-ისთვის

თარიღის პირდაპირ დაყენება, როგორც ეს გავაკეთეთ ზემოთ, გამოიყენება, თუ არ გვაქვს წვდომა MySQL კონფიგურაციის პარამეტრების შეცვლაზე. თუმცა თუ გვინდა გამოვიყენოთ TIMESTAMP, რომელიც ჩვეულებრივ თვითგანახლებადია, ან MySQL თარიღის ფუნქციის მსგავსი NOW ()მაშინ ჩვენ უნდა დავაკონფიგურიროთ MySQL, რათა გამოვიყენოთ UTC ნაგულისხმევი დროის ზონად.

MySQL-ში ეს კეთდება UTC ოფსეტის დაყენებით, რაც შეიძლება გაკეთდეს ისევე მარტივად, როგორც ეს იყო PHP-ში შემდეგი ცვლილებების შეტანით:
ნაგულისხმევი დროის ზონა = "+00:00"

არსებული თარიღების/დროების განახლება

თუ გადაწყვეტთ დროის ზონების სტანდარტიზაციას UTC-ის გამოყენებით, სადაც არის ნაგულისხმევი დროის ზონა UTC +00:00ოფსეტური, მაშინ ახლა შენი მიმდინარე დროარ იმუშავებს თქვენს მონაცემთა ბაზაში.

საბედნიეროდ, MySQL გთავაზობთ ხელსაყრელ ფუნქციას, რომელიც გვაძლევს შესაძლებლობას მარტივად განაახლოთ არსებული დროის ზონები.

შენიშვნა: თუ თქვენ გაქვთ რაიმე დროის შტამპი, მაშინ ისინი ჯერ უნდა განახლდეს.

ჩვენ შეგვიძლია მოძებნოთ თარიღისა და დროის ყველა ველი ჩვენს მონაცემთა ბაზაში შემდეგი შეკითხვის გამოყენებით:
SELECT * FROM `information_schema`.`COLUMNS` WHERE `TABLE_SCHEMA`="table_name" AND (`DATA_TYPE`="timestamp" OR `DATA_TYPE`="datetime" OR `DATA_TYPE`="table_name");
აქედან ჩვენ შეგვიძლია გამოვიყენოთ შემდეგი მოთხოვნა ჩვენს ცხრილებში თარიღების/დროების გასაახლებლად:
განაახლეთ `მაგიდის_სახელი` SET `timestamp`=CONVERT_TZ(`timestamp`, "-05:00", "+00:00");
სად -05:00 - მიმდინარე დროის ზონა, რომლის ფორმატში ინახება დრო (როგორც წინა შემთხვევაში, ეს ეხება აღმოსავლეთს). დროის ზონა +00:00 , რომლის გადაყვანაც გვინდა, ამ შემთხვევაში ეხება UTC.

თუ ვირტუალური ჰოსტინგის მართვის პროცესში საჭიროა ნაგულისხმევი დროის ზონის შეცვლა, მაშინ ეს მოქმედება მარტივად შეიძლება შესრულდეს რამდენიმე ნაბიჯით, რომლებიც აღწერილია ქვემოთ.

დროის ზონის შეცვლა PHP ვერსიის არჩევით

დროის სარტყელის შესაცვლელად გადადით cPanel -> პროგრამული უზრუნველყოფა -> აირჩიეთ PHP ვერსია -> გადაერთეთ PHP ოფციონებზე.

შემდეგი ნაბიჯი არის ცვლადის მნიშვნელობის შეცვლა თარიღი.საათი ზონათქვენთვის საჭირო დროის ზონამდე. ხელმისაწვდომი დროის ზონების სია შეგიძლიათ იხილოთ სტატიის ბოლო პუნქტში.

საჭირო ცვლილებების განხორციელების შემდეგ მნიშვნელოვანია ღილაკზე დაჭერა "ცვლილებების შენახვა", რომელიც მდებარეობს გვერდის ბოლოში PHP სელექტორი.

იმის უზრუნველსაყოფად, რომ მითითებული დროის ზონის მნიშვნელობა იქნა გამოყენებული, შეგიძლიათ გამოიყენოთ PHP ფუნქცია phpinfo (), რომელიც აჩვენებს ინფორმაციას ყველას შესახებ პარამეტრების დაყენება php. ამისათვის შექმენით public_htmlდააჭირეთ ღილაკს "ფაილი"დისპეჩერის მენიუში.

  • მინდორში ფაილის ახალი სახელიმიუთითეთ, მაგალითად, phpinfo.phpშემდეგ დააჭირეთ ღილაკს შექმენით ახალი ფაილი.

  • შედეგად, ფაილი მითითებული სახელით გამოჩნდება ჰოსტინგის სხვათა სიაში.
  • შემდეგი, თქვენ უნდა გახსნათ ეს ფაილი რედაქტირებისთვის. ამისათვის დააწკაპუნეთ მარცხნივ საჭირო ფაილი, შემდეგ დისპეჩერის მენიუში დააჭირეთ ღილაკს შეცვლა.
  • ფორმაში, რომელიც გამოჩნდება, დატოვეთ ყველა ნაგულისხმევი პარამეტრი და დააჭირეთ ღილაკს რედაქტირება, ტექსტური რედაქტორის გასახსნელად.

  • ფანჯარაში, რომელიც იხსნება, უნდა შეიყვანოთ შემდეგი კოდი:

ამის შემდეგ შეინახეთ ფაილი და გახსენით თქვენს ბრაუზერში. IN ამ მაგალითშიფაილი ხელმისაწვდომი იქნება შემდეგ მისამართზე:

http://main_domain/phpinfo.php

გვერდზე, რომელიც იხსნება, იპოვეთ განყოფილება თარიღი, რომელიც შეიცავს ცხრილს მიმდინარე დროის სარტყელის მნიშვნელობით. ამ შემთხვევაში ნაჩვენებია ზემოაღნიშნული ზონა ევროპა/კიევი.

ეს ასრულებს დროის სარტყლის შეცვლის პროცესს.

დროის სარტყლების სია დროის სარტყლის კონფიგურაციისთვის

გარდა ამისა, ქვემოთ ვამაგრებთ დროის სარტყელის შესაძლო მნიშვნელობების ჩამონათვალს:

აფრიკა/კაირო აფრიკა/კასაბლანკა აფრიკა/ჰარარე აფრიკა/მონროვია აფრიკა/ნაირობი ამერიკა/ბოგოტა ამერიკა/ბუენოს_აირესი ამერიკა/კარაკასი ამერიკა/ჩიუახუა ამერიკა/ლა_პას ამერიკა/ლიმა ამერიკა/მაზატლან ამერიკა/მექსიკა_ქალაქი ამერიკა/მონტერეი ამერიკა/სანტიაგოანა ამერიკა/ტ. ალმათი აზია/ბაღდადი აზია/ბაქო აზია/ბანგკოკი აზია/ჩონგინგი აზია/დაკა აზია/ჰონგ_კონგი აზია/ირკუტსკი აზია/ჯაკარტა აზია/იერუსალიმი აზია/ქაბული აზია/ყარაჩი აზია/კატმანდუ აზია/კოლკატა აზია/კრასნოიარსკი აზია/კუალა_ლუმპური აზია/კაუ /მაგადანის აზია/მუსკატი აზია/ნოვოსიბირსკი აზია/რიადი აზია/სეული აზია/სინგაპური აზია/ტაიპეი აზია/ტაშკენტი აზია/თბილისი აზია/თეირანი აზია/ტოკიო აზია/ულანბაატარი აზია/ურუმკი აზია/ვლადივოსტოკი აზია/იაკუტსკი აზია/ეკატერინბურგი ატლანტიკი/აზორები ატლანტიკი/კეიპ_ვერდე ატლანტიკი/სტენლი ავსტრალია/ადელაიდა ავსტრალია/ბრისბენი ავსტრალია/კანბერა ავსტრალია/დარვინი ავსტრალია/ჰობარტი ავსტრალია/მელბურნი ავსტრალია/პერტი ავსტრალია/სიდნეი კანადა/ატლანტიკური კანადა/ნიუფაუნდლენდი კანადა/სასკაჩევანი ევროპა/სასკაჩევანი ევროპა/ა ბელგრადი ევროპა/ბერლინი ევროპა/ბრატისლავა ევროპა/ბრიუსელი ევროპა/ბუქარესტი ევროპა/ბუდაპეშტი ევროპა/კოპენჰაგენი ევროპა/დუბლინი ევროპა/ჰელსინკი ევროპა/სტამბული ევროპა/კიევი ევროპა/ლისაბონი ევროპა/ლუბლიანა ევროპა/ლონდონი ევროპა/მადრიდი ევროპა/მინსკი ევროპა/მოსკოვი ევროპა /პარიზი ევროპა/პრაღა ევროპა/რიგა ევროპა/რომი ევროპა/სარაევო ევროპა/სკოპი ევროპა/სოფია ევროპა/სტოკჰოლმი ევროპა/ტალინი ევროპა/ვენა ევროპა/ვილნიუსი ევროპა/ვოლგოგრადი ევროპა/ვარშავა ევროპა/ზაგრები გრენლანდია წყნარი ოკეანე/წყნარი ოკეანე ოკლენდი/წყნარი ოკეანე ფიჯი/ გუამი წყნარი ოკეანე / შუა წყნარი ოკეანე / პორტ_მორესბი აშშ / ალასკა აშშ / არიზონა აშშ / ცენტრალური აშშ / აღმოსავლეთ აშშ / აღმოსავლეთ ინდიანა აშშ / ჰავაი აშშ / მთა აშშ / წყნარი ოკეანე აშშ / სამოა

გსურთ ახალი სახელი თქვენი ვებსაიტისთვის? ხელმისაწვდომია ჩვენგან

დროის სარტყელის (ნაგულისხმევი) დაყენება ძალიან აუცილებელია მონაცემთა სწორი დამუშავებისთვის. ეს სტატია, დროის ზონის დაყენება php.ini-ში, დაგეხმარებათ გაიგოთ, თუ როგორ შეგიძლიათ დააყენოთ დროის ზონა PHP კონფიგურაციის ფაილში (php.ini) ან ნებისმიერ PHP სკრიპტში დროებითი გამოყენებისთვის.

დროის ზონის დაყენება php.ini-ში

თქვენი 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 ფაილში შემდეგნაირად:

Timezone-ის დაყენება php.ini-ში დასრულებულია.

ზოგჯერ ჩნდება სიტუაცია, რომ სერვერზე მიმდინარე დრო არ შეესაბამება თქვენს ამჟამინდელ სასაათო სარტყელს ან იმ რეგიონის დროის სარტყელს, რომელზეც თქვენი საიტია გამიზნული.

გასაგებად, შეგახსენებთ: რუსეთი გეოგრაფიულად ძალიან დიდია და ყველას არ სჭირდება თავისი საიტები მოსკოვის დროით „იცხოვროს“. მაგალითად, ურალი, ციმბირი, შორეული აღმოსავლეთი და ა.შ.

ყველაზე პოპულარული რუსული ჰოსტინგის პროვაიდერების სერვერები განლაგებულია მოსკოვისა და სანკტ-პეტერბურგის ტექნოლოგიურ საიტებზე და, ნაგულისხმევად, კონფიგურირებულია, რა თქმა უნდა, მოსკოვის დროის ზონისთვის. სერვერს არ შეუძლია ავტომატურად დაარეგულიროს თქვენი მიმდინარე მდებარეობა და დაარეგულიროს სისტემის საათი. ამიტომ, საიტზე თარიღისა და დროის ფუნქციების ფუნქციონირება შეიძლება არ იყოს მთლად სწორი. ბუნებრივია, ახლა ჩვენ არ ვსაუბრობთ CMS-ზე, რომელშიც დროის ზონის კორექტირება ჩვეულებრივ უშუალოდ ადმინისტრატორის ინტერფეისშია.

უპირველეს ყოვლისა, შეამოწმეთ მიმდინარე მდგომარეობა PHP კოდის გამოყენებით:

echo ini_get("თარიღი.საათი ზონა");

კარგია თუ გაქვთ საკუთარი სერვერი და გაქვთ წვდომა php.ini-ზე, სადაც შეგიძლიათ დააყენოთ სასურველი დროის ზონა და დაივიწყოთ იგი. მაგალითად, ამ გზით:

თარიღი.საათი ზონა = ევროპა/მოსკოვი

თუმცა, თუ სერვერი მასპინძლობს რამდენიმე პროექტს, რომლებსაც უნდა უჭერდეს მხარს სხვადასხვა დროის ზონები, მაშინ უმჯობესია არ გააკეთოთ ეს. ამ შემთხვევაში უფრო სწორი იქნება დროის ზონების დაყენება მხოლოდ იმავე დროის ზონის მქონე პროექტებისთვის.

ვირტუალურ ჰოსტინგზე დროის ზონის დაყენება

ჩართულია ვირტუალური ჰოსტინგი, ყველაზე ხშირად არ არის წვდომა სერვერის კონფიგურაციებზე.ამიტომ, პირველ რიგში, შეეცადეთ დააყენოთ დროის ზონა გამოყენებით .htaccess. უბრალოდ იპოვეთ ან შექმენით .htaccess ფაილი თქვენი საიტის ძირში და დაამატეთ მას შემდეგი ხაზი:

Php_value date.timezone "ევროპა/მოსკოვი"

თუ მეთოდი არ მუშაობს, მაშინ გამოვიყენებთ date_default_timezone_set() ფუნქციას, რომელიც ადგენს ნაგულისხმევ დროის სარტყელს ყველა თარიღისა და დროის ფუნქციისთვის. ამისათვის თქვენ უბრალოდ უნდა დაამატოთ შემდეგი ხაზი სადღაც სკრიპტის დასაწყისში:

Date_default_timezone_set ("ევროპა/მოსკოვი");

ბუნებრივია, ევროპა/მოსკოვიცვლილებები დროის სარტყელში, რომელიც გჭირდებათ. რუსეთის ფედერაციის ტერიტორიისთვის PHP მხარს უჭერს შემდეგ დროის ზონებს:

  • ევროპა/მოსკოვი
  • ევროპა/სამარა
  • ევროპა/კალინინგრადი
  • ევროპა/ვოლგოგრადი
  • აზია/ანადირ
  • აზია/კამჩატკა
  • აზია/კრასნოიარსკი
  • აზია/მაგადანი
  • აზია/ნოვოკუზნეცკი
  • აზია/ნოვოსიბირსკი
  • აზია/ომსკი
  • აზია/სახალინი
  • აზია / ვლადივოსტოკი
  • აზია/იაკუტსკი
  • აზია/ეკატერინბურგი

თქვენ შეგიძლიათ ნახოთ ყველა ხელმისაწვდომი დროის ზონების სია ბმულის მიყოლებით ან ბრძანების გაშვებით, რომელიც დაგიბრუნებთ თქვენს სერვერზე ხელმისაწვდომი დროის ზონების ჩამონათვალს.

Print_r(DateTimeZone::listIdentifiers());