თუ შეამჩნევთ, რომ თქვენს საიტზე დრო არ ემთხვევა თქვენს დროის სარტყელს და გსურთ მისი გამოსწორება, ამის გაკეთების რამდენიმე გზა არსებობს. საერთო ჰოსტინგის სერვისების უმეტესობა კრძალავს ამ ფაილის რედაქტირებას, მაგრამ არ დაიდარდოთ, თქვენ შეგიძლიათ მიაღწიოთ იმავე შედეგს .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 = თარიღი ("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`="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.
თუ ვირტუალური ჰოსტინგის მართვის პროცესში საჭიროა ნაგულისხმევი დროის ზონის შეცვლა, მაშინ ეს მოქმედება მარტივად შეიძლება შესრულდეს რამდენიმე ნაბიჯით, რომლებიც აღწერილია ქვემოთ.
დროის სარტყელის შესაცვლელად გადადით cPanel -> პროგრამული უზრუნველყოფა -> აირჩიეთ PHP ვერსია -> გადაერთეთ PHP ოფციონებზე.
შემდეგი ნაბიჯი არის ცვლადის მნიშვნელობის შეცვლა თარიღი.საათი ზონათქვენთვის საჭირო დროის ზონამდე. ხელმისაწვდომი დროის ზონების სია შეგიძლიათ იხილოთ სტატიის ბოლო პუნქტში.
საჭირო ცვლილებების განხორციელების შემდეგ მნიშვნელოვანია ღილაკზე დაჭერა "ცვლილებების შენახვა", რომელიც მდებარეობს გვერდის ბოლოში PHP სელექტორი.
იმის უზრუნველსაყოფად, რომ მითითებული დროის ზონის მნიშვნელობა იქნა გამოყენებული, შეგიძლიათ გამოიყენოთ PHP ფუნქცია phpinfo (), რომელიც აჩვენებს ინფორმაციას ყველას შესახებ პარამეტრების დაყენება php. ამისათვის შექმენით public_htmlდააჭირეთ ღილაკს "ფაილი"დისპეჩერის მენიუში.
ამის შემდეგ შეინახეთ ფაილი და გახსენით თქვენს ბრაუზერში. IN ამ მაგალითშიფაილი ხელმისაწვდომი იქნება შემდეგ მისამართზე:
http://main_domain/phpinfo.php
გვერდზე, რომელიც იხსნება, იპოვეთ განყოფილება თარიღი, რომელიც შეიცავს ცხრილს მიმდინარე დროის სარტყელის მნიშვნელობით. ამ შემთხვევაში ნაჩვენებია ზემოაღნიშნული ზონა ევროპა/კიევი.
ეს ასრულებს დროის სარტყლის შეცვლის პროცესს.
გარდა ამისა, ქვემოთ ვამაგრებთ დროის სარტყელის შესაძლო მნიშვნელობების ჩამონათვალს:
აფრიკა/კაირო აფრიკა/კასაბლანკა აფრიკა/ჰარარე აფრიკა/მონროვია აფრიკა/ნაირობი ამერიკა/ბოგოტა ამერიკა/ბუენოს_აირესი ამერიკა/კარაკასი ამერიკა/ჩიუახუა ამერიკა/ლა_პას ამერიკა/ლიმა ამერიკა/მაზატლან ამერიკა/მექსიკა_ქალაქი ამერიკა/მონტერეი ამერიკა/სანტიაგოანა ამერიკა/ტ. ალმათი აზია/ბაღდადი აზია/ბაქო აზია/ბანგკოკი აზია/ჩონგინგი აზია/დაკა აზია/ჰონგ_კონგი აზია/ირკუტსკი აზია/ჯაკარტა აზია/იერუსალიმი აზია/ქაბული აზია/ყარაჩი აზია/კატმანდუ აზია/კოლკატა აზია/კრასნოიარსკი აზია/კუალა_ლუმპური აზია/კაუ /მაგადანის აზია/მუსკატი აზია/ნოვოსიბირსკი აზია/რიადი აზია/სეული აზია/სინგაპური აზია/ტაიპეი აზია/ტაშკენტი აზია/თბილისი აზია/თეირანი აზია/ტოკიო აზია/ულანბაატარი აზია/ურუმკი აზია/ვლადივოსტოკი აზია/იაკუტსკი აზია/ეკატერინბურგი ატლანტიკი/აზორები ატლანტიკი/კეიპ_ვერდე ატლანტიკი/სტენლი ავსტრალია/ადელაიდა ავსტრალია/ბრისბენი ავსტრალია/კანბერა ავსტრალია/დარვინი ავსტრალია/ჰობარტი ავსტრალია/მელბურნი ავსტრალია/პერტი ავსტრალია/სიდნეი კანადა/ატლანტიკური კანადა/ნიუფაუნდლენდი კანადა/სასკაჩევანი ევროპა/სასკაჩევანი ევროპა/ა ბელგრადი ევროპა/ბერლინი ევროპა/ბრატისლავა ევროპა/ბრიუსელი ევროპა/ბუქარესტი ევროპა/ბუდაპეშტი ევროპა/კოპენჰაგენი ევროპა/დუბლინი ევროპა/ჰელსინკი ევროპა/სტამბული ევროპა/კიევი ევროპა/ლისაბონი ევროპა/ლუბლიანა ევროპა/ლონდონი ევროპა/მადრიდი ევროპა/მინსკი ევროპა/მოსკოვი ევროპა /პარიზი ევროპა/პრაღა ევროპა/რიგა ევროპა/რომი ევროპა/სარაევო ევროპა/სკოპი ევროპა/სოფია ევროპა/სტოკჰოლმი ევროპა/ტალინი ევროპა/ვენა ევროპა/ვილნიუსი ევროპა/ვოლგოგრადი ევროპა/ვარშავა ევროპა/ზაგრები გრენლანდია წყნარი ოკეანე/წყნარი ოკეანე ოკლენდი/წყნარი ოკეანე ფიჯი/ გუამი წყნარი ოკეანე / შუა წყნარი ოკეანე / პორტ_მორესბი აშშ / ალასკა აშშ / არიზონა აშშ / ცენტრალური აშშ / აღმოსავლეთ აშშ / აღმოსავლეთ ინდიანა აშშ / ჰავაი აშშ / მთა აშშ / წყნარი ოკეანე აშშ / სამოა
გსურთ ახალი სახელი თქვენი ვებსაიტისთვის? ხელმისაწვდომია ჩვენგან
დროის სარტყელის (ნაგულისხმევი) დაყენება ძალიან აუცილებელია მონაცემთა სწორი დამუშავებისთვის. ეს სტატია, დროის ზონის დაყენება 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 ფაილში შემდეგნაირად:
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());