Laika joslas iestatīšana PHP. Datuma laika josla - iestatiet laika joslu PHP un MySQL Dater - nosaka laika joslu, lokalizē un formatē laiku PHP

Ja virtuālā hostinga pārvaldīšanas procesā ir jāmaina noklusējuma laika josla, tad šo darbību var viegli veikt vairākos soļos, kas aprakstīti tālāk.

Laika joslas maiņa, izmantojot Select PHP Version

Lai mainītu laika joslu, dodieties uz cPanel -> Programmatūra -> Izvēlieties PHP versiju -> Pārslēdzieties uz PHP opcijām.

Nākamais solis ir mainīt mainīgā vērtību datums.laika josla uz vajadzīgo laika joslu. Pieejamo laika joslu sarakstu varat atrast raksta pēdējā rindkopā.

Pēc nepieciešamo izmaiņu veikšanas ir svarīgi noklikšķināt uz pogas "Saglabāt izmaiņas", kas atrodas lapas apakšā PHP atlasītājs.

Lai nodrošinātu, ka ir lietota norādītā laika joslas vērtība, varat izmantot PHP funkciju phpinfo(), kas parāda informāciju par visiem instalētajiem php parametriem. Lai to izdarītu, izveidojiet public_html noklikšķiniet uz pogas "Fails" dispečera izvēlnē.

  • Laukā Jauns faila nosaukums norādīt, piemēram, phpinfo.php pēc tam noklikšķiniet uz pogas Izveidot jaunu failu.

  • Rezultātā fails ar norādīto nosaukumu parādīsies citu hostinga sarakstā.
  • Tālāk jums ir jāatver šis fails rediģēšanai. Lai to izdarītu, ar peles kreiso taustiņu noklikšķiniet uz vajadzīgā faila, pēc tam pārvaldnieka izvēlnē noklikšķiniet uz pogas Mainīt.
  • Parādītajā formā atstājiet visus noklusējuma parametrus un noklikšķiniet uz pogas Rediģēt, lai atvērtu teksta redaktoru.

  • Atvērtajā logā jāievada šāds kods:

Pēc tam saglabājiet failu un atveriet to savā pārlūkprogrammā. Šajā piemērā fails būs pieejams:

http://main_domain/phpinfo.php

Atvērtajā lapā atrodiet sadaļu datums, kurā būs tabula ar pašreizējās laika joslas vērtību. Šajā gadījumā tiek parādīta iepriekš minētā zona Eiropa/Kijeva.

Tas pabeidz laika joslas maiņas procesu.

Laika joslu saraksts, lai konfigurētu laika joslu

Turklāt zemāk pievienojam iespējamo laika joslu vērtību sarakstu:

Āfrika/Kaira Āfrika/Kasablanka Āfrika/Harare Āfrika/Monrovija Āfrika/Nairobi Amerika/Bogota Amerika/Buenos_Aires America/Karakasa Amerika/Čivava Amerika/La_Paz America/Lima America/Mazatlan America/Meksika_Pilsēta Amerika/Montereja Amerika/Santjago Āzija/Tihuāna Almati Āzija/Bagdādes Āzija/Baku Āzija/Bangkokas Āzija/Čuncjinas Āzija/Dakas Āzija/Honkongas Āzija/Irkutskas Āzija/Džakarta Āzija/Jeruzaleme Āzija/Kabulas Āzija/Karači Āzija/Katmandu Āzija/Kolkatas Āzija/Krasnojarskas Āzija/Kuala_Lumpuras Āzija/Kuveitas Āzija /Magadana Āzija/Maskata Āzija/Novosibirska Āzija/Rijāda Āzija/Seula Āzija/Singapūra Āzija/Taipeja Āzija/Taškenta Āzija/Tbilisi Āzija/Tehrāna Āzija/Tokija Āzija/Ulānbatora Āzija/Urumči Āzija/Vladivostoka Āzija/Jakutskas Āzija/Jekaterinburgas Āzija Atlantijas okeāns/Azoru salas Atlantijas okeāns/Kaboverde Atlantijas okeāns/Stenlija Austrālija/Adelaida Austrālija/Brisbena Austrālija/Kanbera Austrālija/Dārvina Austrālija/Hobārta Austrālija/Melburna Austrālija/Pērta Austrālija/Sidneja Kanāda/Atlantijas okeāna Kanāda/Ņūfaundlenda Kanāda/Saskačevana Eiropa/Amsterdama Eiropa/Atēnas Eiropa/ Eiropa Belgrada/Berlīne Eiropa/Bratislava Eiropa/Brisele Eiropa/Bukareste Eiropa/Budapešta Eiropa/Kopenhāgena Eiropa/Dublin Eiropa/Helsinki Eiropa/Stambula Eiropa/Kijeva Eiropa/Lisabona Eiropa/Ļubļana Eiropa/Londona Eiropa/Madride Eiropa/Minska Eiropa/Maskava Eiropa /Parīze Eiropa/Prāga Eiropa/Rīga Eiropa/Roma Eiropa/Sarajevo Eiropa/Skopje Eiropa/Sofija Eiropa/Stokholma Eiropa/Tallina Eiropa/Vīne Eiropa/Viļņa Eiropa/Volgograd Eiropa/Varšava Eiropa/Zagreba Grenlande Klusais okeāns/Oklendas Klusais okeāns/Fidži Klusais okeāns/ Guama Klusais okeāns/Klusā okeāna vidusdaļa/Port_Moresbija ASV/Aļaska ASV/Arizona/ASV centrālā daļa/ASV austrumi/Austrumi-Indiana/ASV Havaju salas/ASV kalni/ASV Klusais okeāns/Samoa

Vai vēlaties savai vietnei jaunu nosaukumu? Pieejams pie mums

Dažreiz rodas situācija, ka pašreizējais laiks uz servera neatbilst jūsu pašreizējai laika joslai vai reģiona laika joslai, uz kuru ir atlasīta jūsu vietne.

Lai būtu skaidrs, atgādināšu: Krievija ģeogrāfiski ir ļoti liela, un ne visiem ir nepieciešams, lai viņu vietnes “dzīvotu” pēc Maskavas laika. Piemēram, Urāli, Sibīrija, Tālie Austrumi utt.

Vispopulārāko Krievijas mitināšanas pakalpojumu sniedzēju serveri atrodas tehnoloģiju vietnēs Maskavā un Sanktpēterburgā un, protams, pēc noklusējuma ir konfigurēti Maskavas laika joslai. Serveris nevar automātiski pielāgoties jūsu pašreizējai atrašanās vietai un pielāgot sistēmas pulksteni. Tāpēc datuma un laika funkciju darbība vietnē var nebūt pilnīgi pareiza. Protams, tagad mēs nerunājam par CMS, kurā laika joslas pielāgošana parasti atrodas tieši administratora saskarnē.

Vispirms pārbaudiet pašreizējo stāvokli, izmantojot PHP kodu:

echo ini_get("date.timezone");

Ir labi, ja jums ir savs serveris un piekļuve php.ini, kur varat iestatīt vēlamo laika joslu un to aizmirst. Piemēram, šādā veidā:

Date.timezone = Eiropa/Maskava

Tomēr, ja serverī ir vairāki projekti, kuriem jāatbalsta dažādas laika joslas, labāk to nedarīt. Šajā gadījumā pareizāk būtu laika joslas iestatīt tikai projektiem ar vienu laika joslu.

Laika joslas iestatīšana virtuālajam hostingam

Dalītā mitināšanā visbiežāk nav piekļuves servera konfigurācijām. Tāpēc, pirmkārt, mēģiniet iestatīt laika joslu, izmantojot .htaccess. Vienkārši atrodiet vai izveidojiet .htaccess failu savas vietnes saknē un pievienojiet tam šādu rindiņu:

Php_value date.timezone "Eiropa/Maskava"

Ja šī metode nedarbojas, mēs izmantosim funkciju date_default_timezone_set(), kas iestata noklusējuma laika joslu visām datuma un laika funkcijām. Lai to izdarītu, jums vienkārši jāpievieno šāda rinda kaut kur skripta sākumā:

Date_default_timezone_set("Eiropa/Maskava");

Protams, Eiropa/Maskava izmaiņas uz vajadzīgo laika joslu. Krievijas Federācijas teritorijā PHP atbalsta šādas laika joslas:

  • Eiropa/Maskava
  • Eiropa/Samara
  • Eiropa/Kaļiņingrada
  • Eiropa/Volgograda
  • Āzija/Anadira
  • Āzija/Kamčatka
  • Āzija/Krasnojarska
  • Āzija/Magadana
  • Āzija/Novokuzņecka
  • Āzija/Novosibirska
  • Āzija/Omska
  • Āzija/Sahalīna
  • Āzija/Vladivostoka
  • Āzija/Jakutska
  • Āzija/Jekaterinburga

Varat skatīt visu pieejamo laika joslu sarakstu, sekojot saitei vai izpildot komandu, kas parādīs serverī pieejamo laika joslu sarakstu.

Print_r(DateTimeZone::listIdentifiers());


Šis ir īss raksts par to, kā strādāt ar laika joslām, datu bāzē saglabājot datuma/laika vērtības. Datubāze vai programmēšanas valoda, kuru nolemjat izmantot, nav būtiska, jo rakstā aprakstītās parādības ir universālas. Es parādīšu savas darbības, izmantojot MySQL un PHP kombinācijas izmantošanas piemēru. Problēma, kas saistīta ar laika joslām, ir diezgan triviāla. Daudzi cilvēki bieži aizmirst par savu eksistenci, un daži to uzskata par kaut ko pārāk sarežģītu. Parasti, iestatot datu bāzi vai izmantojot tīmekļa mitināšanas pakalpojumu, laika joslas tiek konfigurētas pēc noklusējuma. Noklusējuma iestatījumi ir labi, ja izmantojat vienu serveri, bet kas notiks, ja nolemjat to pārvietot?

Tas pats jautājums ir loģisks, ja jums ir vairāki serveri dažādās vietās.
Tā vietā, lai saglabātu laika joslas katram datumam, labāk ir izmantot standarta laiku un saistīt visus savus datumus ar to. Šī metode ļauj pāriet uz standarta laiku, pirms vērtība tiek saglabāta datu bāzē. Kopumā tā ir laba ideja vienkārši izmantot UTC +00:00.

Kas ir UTC

UTC ir koordinētais universālais laiks un ir Griničas laika (GMT) pēctecis. Abi formāti ir gandrīz identiski, taču UTC tiek uzskatīts par pieņemto standartu. Kopumā UTC pamatā ir 40 dažādas laika joslas. Parastais UTC laika sākuma punkts ir 00:00. Kopumā ir 12 galvenās laika joslas, gan pozitīvas, gan negatīvas, kā arī dažas papildu laika joslas, piemēram, pusstundu. UTC +04:30. Ideja ir tāda, ka, ja jums ir laika josla UTC -05:00, tad no sākuma būs jāatņem 5 stundas UTC +00:00 lai sasniegtu vēlamo piemērotību. Tas ir, ja ir 14:00 (vai 14:00) un jūsu laika josla UTC-05:00(EST vai Austrumu laika josla), tad UTC +00:00 būs vienāds ar 19:00 (vai 19:00).
  • Pasaules laika joslu grafisks attēlojums (Wikipedia)
  • Laika joslu saīsinājumu saraksts (Wikipedia)

Uzglabāšanas laiks UTC +00:00 formātā

Pirmā lieta, kas mums jādara, ir izlemt, kuru laika joslu izmantot, lai saglabātu visas mūsu vērtības. Es ļoti iesaku to ņemt par pamatu UTC +00:00- bez īpaša iemesla, izņemot to, ka to ir viegli atcerēties, un 0 ir ideāls atskaites punkts. Tā kā mēs zinām, ka visi datumi ir spēkā UTC +00:00, kļūst daudz vieglāk attēlot pareizo laiku katram lietotājam, pamatojoties uz viņa personīgajām laika zonām. Kad lietotājs ir izvēlējies (vai mēs esam automātiski noteikuši) savu laika joslu, šim lietotājam atbilstošā laika parādīšana kļūst par ierastu parādību.

Noklusētās laika joslas iestatīšana

Pieņemot, ka visi mūsu datumi/laiki tiek saglabāti UTC, mēs varam vienkārši iestatīt noklusējuma laika joslu, kas jāizmanto, lai parādītu katru reizi. Tas automātiski atlasīs datumu un laiku konkrētam lietotājam. PHP viss, kas mums jādara, ir iestatīt laika joslu, piemēram:
date_default_timezone_set("EST");
Mēs to varam izdarīt kādā inicializācijas blokā mūsu koda sākumā, un tas ir paveikts: visi datumi tiks parādīti atbilstoši laika joslai, kurā atrodas lietotājs.

Ja mēs vēlamies pilnībā kontrolēt datumu un laiku, mēs varam izveidot funkciju šādi:
funkcija get_date($date) ( date_default_timezone_set("EST"); $date = date("Y-m-d H:i:s", strtotime($date)); date_default_timezone_set("UTC"); return $date; )

PHP iestatīšana UTC +00:00

Protams, viss nebūtu tik vienkārši, ja mēs nebūtu konfigurējuši savu sistēmu, lai UTC izmantotu kā noklusējuma laika joslu. Esmu pārliecināts, ka to var izdarīt tādā pašā veidā citās valodās, bet PHP to dara šādi:
date.timezone = UTC
Tagad, kad mēs izmantojam tādas lietas kā funkcija laiks(), tas mums automātiski piešķir UTC laiku ar atbilstošu nobīdi, pamatojoties uz mūsu servera laiku. Ja mēs vēlamies iestatīt datumus datu bāzē, piemēram, MySQL, mēs rīkojamies šādi:
datums("Y-m-d H:i:s", laiks());
Ja mums nebija piekļuves mainīt PHP konfigurāciju, datuma iestatīšanas laikā mums manuāli jāiestata laiks, piemēram:
datums("Y-m-d H:i:s", laiks() - datums("Z"));

MySQL iestatīšana UTC +00:00

Tieša datuma iestatīšana, kā to darījām iepriekš, ir piemērojama, ja mums nav piekļuves MySQL konfigurācijas parametru maiņai. Tomēr, ja mēs vēlamies izmantot LAIKZĪMOGS, kas parasti ir pašatjaunojoša, vai MySQL datuma funkcija, piemēram TAGAD () tad mums ir jākonfigurē MySQL, lai izmantotu UTC kā noklusējuma laika joslu.

MySQL tas tiek darīts, iestatot UTC nobīdi, ko var izdarīt tikpat vienkārši kā PHP, veicot šādas izmaiņas:
noklusējuma laika josla = "+00:00"

Esošo datumu/laiku atjaunināšana

Ja izlemjat standartizēt laika joslas, izmantojot UTC, kur ir noklusējuma laika josla UTC +00:00 kompensēt, tad tagad jūsu pašreizējais laiks jūsu datu bāzē tiks bojāts.

Par laimi, MySQL nodrošina ērtu funkciju, kas sniedz mums iespēju viegli atjaunināt esošās laika joslas.

PIEZĪME: Ja jums ir laikspiedoli, tie vispirms ir jāatjaunina.

Mēs varam meklēt visos datuma un laika laukos mūsu datubāzē, izmantojot šādu vaicājumu:
SELECT * FROM `information_schema`.`COLUMNS` WHERE `TABLE_SCHEMA`="tabulas_nosaukums" UN (`DATA_TYPE`="laikspiedols" VAI `DATA_TYPE`="datetime" VAI `DATA_TYPE`="datums");
Šeit mēs varam izmantot šādu vaicājumu, lai atjauninātu datumus/laikus mūsu tabulās:
UPDATE `table_name` SET `timestamp`=CONVERT_TZ(`laikspiedols`, "-05:00", "+00:00");
Kur -05:00 - pašreizējā laika josla, kurā laiks tiek saglabāts (tāpat kā iepriekšējā gadījumā tas attiecas uz Austrumu). Laika zona +00:00 , kuru mēs vēlamies konvertēt, šajā gadījumā attiecas uz UTC.

2013. gada 21. martā plkst. 12:58

Datums — nosaka laika joslu, lokalizē un formatē laiku PHP

  • PHP

Kad, izstrādājot tīmekļa projektu, rodas uzdevums ņemt vērā lietotāju laika joslas, katru reizi šķiet, ka risinājums ir jāizdomā no jauna. No daudzajiem man zināmajiem projektiem, kas atrisināja šo problēmu, neatceros nevienu risinājumu, ko varētu saukt par vienkāršu, visai arhitektūrai caurspīdīgu un universālu.

Bet ko darīt, ja vēlaties tikai dažas koda rindiņas un lai pārējais kods nekad neuzzinātu, ka dati ir jānosūta klientam citā laika joslā un ka no klienta saņemtajos datos laiku var norādīt laika joslā, kas atšķiras no servera? Lai atrisinātu šo un daudzas citas problēmas, šodien es jums pastāstīšu par vienu kodolīgu un funkcionālu PHP bibliotēku.

Tātad, iepazīstieties ar Dateru un tā galvenajām iezīmēm:

  • Iesiešanas formāti
  • Tekstu un formātu lokalizācija
  • Formatēšanas opciju saraksta paplašināšana
  • Automātiska laika joslu noteikšana
  • Konvertējiet laiku, pamatojoties uz laika joslu
  • Automātiska laika konvertēšana uz $_GET, $_POST, $_REQUEST, ņemot vērā laika joslu
  • Automātiska laika joslu konvertēšana iesniegtajā datu veidnē
Mēs atstāsim solītās koda rindas, lai automātiski noteiktu un apstrādātu lietotāja laika joslu deserta pagatavošanai, bet pagaidām īsumā un piemēriem apskatīsim galvenās Dater funkcijas.

Iesiešanas formāti

Ļauj standartizēt projektā izmantoto formātu kopu un strādāt ar tiem pēc nosaukuma:

$dater = new Dater\Dater(new Dater\Locale\En()); $datums->formāts(laiks(), "d/m/G"); // 2013/03/14 $dater->addFormat("slashedDate", "d/m/Y"); $datums->formāts(laiks(), "svītrotaisDatums"); // 2013/03/14 $dater->slashedDate(laiks()); // 2013/03/14

Formatēšanas opciju paplašināšana

Ir pieejamas visas formatēšanas opcijas no datuma(), un tās var arī ignorēt un paplašināt:

$dater->addFormatOption("ago", funkcija (DateTime $datetime) ( return floor((time() - $datetime->getTimestamp()) / 86400) . "days ago"; )); $datums->formāts(laiks() - 60*60*24*7, "d F Y, pirms"); // 2013. gada 14. marts, pirms 7 dienām

Vietējais atbalsts

$dater->setLocale(new Dater\Locale\En()); atbalss $datums->datums(); // 21.03.2013. echo $dater->now("j F Y"); // 2013. gada 21. marts $dater->setLocale(Dater\Dater::getLocaleByCode("ru")); atbalss $datums->datums(); // 21.03.2013. echo $dater->now("j F Y"); // 2013. gada 21. marts

Standarta metodes servera un lietotāja formātiem, ņemot vērā lokalizāciju

atbalss $datums->datums(); // 21/03/2013 (klienta laika josla, atkarīga no lokalizācijas) echo $dater->time(); // 5:41 (klienta laika josla, atkarīga no lokalizācijas) echo $dater->datetime(); // 21.03.2013 5:41 (klienta laika josla, atkarīga no lokalizācijas) echo $dater->isoDate(); // 2013-03-21 (klienta laika josla) echo $dater->isoTime(); // 05:41:28 (klienta laika josla) echo $dater->isoDatetime(); // 2013-03-21 05:41:28 (klienta laika josla) echo $dater->serverDate(); // 2013-03-21 (servera laika josla) echo $dater->serverTime(); // 09:41:28 (servera laika josla) echo $dater->serverDatetime(); // 2013-03-21 09:41:28 (servera laika josla)

Datuma un laika konvertēšana, ņemot vērā laika joslu

$dater->setServerTimezone("Eiropa/Maskava"); $dater->setClientTimezone("Eiropa/Londona"); echo $dater->serverDatetime(); // 2013-03-21 08:18:06 echo $dater->isoDatetime(); // 2013-03-21 04:18:06 echo $dater->time(); // 04:18
Ir vērts pieminēt, ka, izsaucot $dater->setServerTimezone("Europe/Moscow"); Funkcija date() un DateTime klase atgriezīs laiku tikko iestatītajā laika joslā. Lai to atspējotu, metodei kā otrajam parametram norādiet false.

Un visbeidzot, kas tika solīts

Kods, kas ļaus automātiski noteikt klienta laika joslu un parādīt tam pašreizējo datumu un laiku:

Globālā iniciatora skripta galvenē

$dater = new Dater\Dater(new Dater\Locale\Ru(), "Eiropa/Maskava"); $timezoneDetector = new Dater\TimezoneDetector(); $dater->setClientTimezone($timezoneDetector->getClientTimezone()); $dataHandler = new Dater\DataHandler($dater); $dataHandler->enableOutputTimezoneHandler(); $dataHandler->convertRequestDataToServerTimezone();
Galvenajā veidnē

getHtmlJsCode() ?>
Tagad visas GGGG-MM-DD HH:MM:SS virknes nosūtītajos datos tiks aizstātas ar GGGG-MM-DD HH:MM:SS automātiski noteiktajā klienta laika joslā. Ja vēlaties attēlot datumu un laiku noteiktā formātā, vienkārši pievienojiet GGGG-MM-DD HH:MM:SS[Н m d] vai GGGG-MM-DD HH:MM:SS kur datums ir formāts, kas saistīts ar Datums. . Varat arī izvadīt un formatēt laikspiedola formātu: 1363853607.

Piemēram, šādi dati

Laika zīmoga formāts: 1363238564 (nemainīsies) Laikspiedola formāts: 1363238564 Laika zīmoga formāts: 1363238564 Servera datuma un laika formāts: 2013-03-14 09:22:44 Servera datuma un laika formāts: 2013-03-22:40 Servera datuma un laika formāts 2013-03-14:4 - 03-14 09:22:44
Tiks automātiski konvertēts uz

Laika zīmoga formāts: 1363238564 (nemainīsies) Laika zīmoga formāts: 2013/03/14 Laika zīmoga formāts: 03/14/2013 07:22 Servera datuma un laika formāts: 2013/03/14 Servera datuma un laika formāts: 07:22 Servera datuma un laika formāts: 2013 03-14 07:22:44

Tajā pašā laikā $dataHandler->convertRequestDataToServerTimezone(); pārliecināsies, ka visi GGGG-MM-DD HH:MM:SS dati, kas nāk no klienta, tiks konvertēti uz GGGG-MM-DD HH:MM:SS servera laika joslu. Tādā veidā serveris nekad neuzzinās, ka klients saņem un sūta datumu un laiku citā laika joslā.

Jāatzīst, ka tas ir nedaudz ekstrēms veids, kā rīkoties ar laika zonām. Universālāks un tradicionālāks risinājums būtu izvairīties no $dataHandler->enableOutputTimezoneHandler(); un vienkārši ierāmējiet katra datuma un laika ievietošanu, izsaucot atbilstošo formatēšanas metodi. Piemēramdatums($datetimeOrTimestamp) ?> .

par projektu

Godīgi atzīstu, ka esmu šīs bibliotēkas autore, un būšu ļoti pateicīga par jebkuru kritiku un palīdzību tās uzlabošanā. Avoti ir ievietoti vietnē

date_default_timezone_set utc(6)

new ACVN("mysql:host=localhost;dbname=nametable", "lietotājvārds", "parole", );

Šie datumi ir jāsalīdzina MySQL, izmantojot funkciju NOW(), lai atgrieztu starpību stundās, piemēram:

SELECT TIMESTAMPDIFF ( stunda , NOW (), finalize_at ) NO plāniem ;

Bet problēma ir tā, ka PHP funkcija date ("Ymd H:i:s") izmanto PHP laika joslas iestatījumu, un funkcija NOW() paņem MySQL laiku no MySQL servera.

Es mēģinu atrisināt šo:

  1. date_default_timezone_set("Eiropa/Parīze"); Tas darbojas tikai PHP.
  2. date.timezone= "Eiropa/Parīze"; Tas darbojas tikai PHP.
  3. SELECT CONVERT_TZ(tagad(), "GMT", "MET"); Tas atgriežas tukšs.
  4. mysql> SET time_zone = "Eiropa/Parīze"; Tas rada kļūdu no MySQL konsoles.

Un MySQL laika josla nemainās.

Vai ir kāds veids, kā mainīt PHP un MySQL laika joslu, neizmantojot to MySQL konsolē vai iestatot laika joslas izmaiņas kaut kur php.ini un padarīt šīs vērtības pieejamas gan PHP, gan MySQL.

Es ļoti novērtēju jūsu atbalstu.

To var izdarīt vienkārši, izmantojot tikai divas PHP rindas.

$tz = (new DateTime("tagad", new DateTimeZone("Āzija/Kabula")))->formāts("P"); $pdo -> exec ("SET time_zone="$tz";" );

PHP izmantojiet šo funkciju:

date_default_timezone_set() noklusējuma - laiks - zona = "laika josla"

Ja jums ir privilēģija sakne, varat iestatīt servera globālo pulksteni izpildes laikā, izmantojot šo paziņojumu:

SET GLOBAL time_zone = laika josla ;

Laika josla katram savienojumam. Katram klientam, kas izveido savienojumu, ir sava laika josla, ko nosaka mainīgais time_zone. Sākotnēji sesijas mainīgais iegūst vērtību no globālā mainīgā time_zone, bet klients var mainīt savu laika joslu, izmantojot šo paziņojumu:

SET time_zone = laika josla ;

Labākā metodes iestatīšanas laika josla ACVN MySQL:

Ja nepieciešams, kļūdas dēļ varat izmantot: datums("P") Piemērs:

jauns ACVN ( "mysql:host=localhost;dbname=nametable", "lietotājvārds" , "parole" , [ ACVN :: MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8;SET time_zone = "". datums ("P"). """ ]);

Es varu mainīt savu noklusējuma mysql laika joslu no mainīgo sadaļas, rediģējot rindiņu, kas saka "timezone" programmā phpmyadmin.

Šeit varat arī mainīt formātu un daudz ko citu, ko varat atrast mysql atbalsta sadaļā http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html, ceru, ka tas jums palīdzēs .

$unsafe_variable = (ir_numeric($_POST["lietotāja_ievade"]) ? $_POST["lietotāja_ievade"] : "");

Un daudz labāk ir izmantot šīs funkcijas, lai apstiprinātu ievadi mysql_real_escape_string.