A PHP szerver ideje aktuális. A dátum és az idő konvertálása időbélyeg formátumba. Miért érdemes feliratkozni híreinkre

A különféle programozási feladatok között meglehetősen gyakoriak a dátum- és időértékekkel végzett különféle manipulációk. Egy ritka automatizált rendszer vagy adatbázis megteheti anélkül, hogy információkat tárolna egy adott folyamat időpontjáról. Azon kívül, hogy egyszerűen hozzáadhat egy dátumot egy adatbázisrekordhoz vagy megjelenítheti ezt a dátumot, számos feladat van a dátumok megjelenítéséhez különféle formákban, ellenőrzi, hogy az aktuális idő egyezik-e egy adott időzítővel, kiszámítja a két dátum közötti időszakot és még sok más.

Létrehozhat két bemutató oldalt, hogy megértse az időbélyeg fogalmát. A datolya olyannyira a mindennapi élet része, hogy könnyű vele dolgozni gondolkodás nélkül. Nem igényel argumentumot, de egész számot ad vissza. Ez a következő eredményt fogja eredményezni -. Nehéz megérteni.

Most már teljes mértékben kézben tarthatja a dátumot és az időt. Ezt a dátumot és időt tetszőleges formátumban formázhatja. A következő táblázatok felsorolják azokat a kódokat, amelyeket a - format karakterlánc tartalmazhat. Remélem, jól ismeri a dátum és az idő igény szerinti formázását.

A dátumokkal való munka megkönnyítése érdekében minden programozási nyelvnek saját speciális adattípusai vannak a dátum és idő értékek tárolására. Leggyakrabban ez egy numerikus érték, akár egész szám, akár lebegőpontos érték.

IN PHP munka dátummal, leggyakrabban UNIX TIMESTAMP-pel találkozik. Itt az idő egész számként kerül tárolásra. Az időszámítás 1970. január 1-jén kezdődik. Ezért például a 2014. 12. 11. 19:40:00 dátumot és időt a 1418316000 szám képviselné. Ez a szám azt mutatja, hogy hány másodperc telt el a Unix Epochnak nevezett, 1970. január 1-jei nulla dátum óta.

A blog aktuális helyi idejét adja vissza a megadott formátumban. A 9-es verziótól kezdve az első paraméter bármely más értéke kerül felhasználásra időformátumként. Ha 0-ra van állítva, vagy nincs második paraméter, akkor a visszaadott érték az általános beállítások oldalon a blog időzóna-beállításában megadott időzóna helyi ideje.

A dátum és az idő konvertálása időbélyeg formátumba

Ez a példa megkapja aktuális időés paramétereket rendel a változókhoz. A nyomtatáshoz szükséges információk megszerzéséhez használnunk kell a következő funkciók közül néhányat vagy mindegyiket. Most már kinyomtathatjuk a dátumadatokat. Az időbélyeg azonban nem kötelező paraméter, ha nincs benne, akkor az aktuális dátum és idő kerül felhasználásra. A következő nyilatkozat a mai dátumot mutatja.

Példa egy PHP-oldalra, amely adatkonverziós képességeket biztosít, a webhely Programok részében a "Dátum- és időformátum konvertálása" programmal. Itt generálhatja a kívánt dátumot UNIX TIMESTAMP formátumban, valamint ezt a formátumot szabványos, ember által olvasható formába hozhatja.

Az aktuális idő és dátum lekérése PHP-ben

Az aktuális szerveridő megtekintéséhez használja a funkciót

Íme néhány dátumhoz kapcsolódó formázási karakter, amelyeket gyakran használnak a formázási karakterláncban. A dátum részei elválaszthatók más karakterek, például kötőjelek, pontok, perjelek vagy szóközök beszúrásával további vizuális formázás hozzáadásához.

Miért érdemes feliratkozni híreinkre!?

Hasonlóképpen használhatja a következő karaktereket az idő karakterlánc formázásához. A fenti példa a következő eredményt adja. Ha nincs megadva dátum és idő, a rendszer az aktuális dátumhoz és időponthoz tartozó időbélyegzőt adja vissza. Jegyzet. Tetszőleges számú argumentumot hagyhat meg, és helyette az aktuális időnek megfelelő érték kerül felhasználásra.

int time (érvénytelen)

amely Unix időbélyeg formátumban adja vissza az értéket.

echo time(); // az aktuális időt Unix időbélyeg formátumban adja ki

Első pillantásra a formátum nem túl kényelmes az emberek számára, de mint tudod, minél egyszerűbb az adatok megjelenítése, a számítógép annál gyorsabban dolgozza fel ezeket az értékeket. Ráadásul egy szám adatbázisban való tárolása sokkal költséghatékonyabb, mint bármely speciális formátum. Ezenkívül a PHP idővel ugyanúgy működik Unix és Windows platformon, ami lehetővé teszi a kód használatát ezen platformok bármelyikén.

Példák a dátummal való munkavégzésre

A következő példában látható módon melyik dátum jelenik meg az aktuális dátumtól számított 30 hónappal? Kezdjük azzal, hogy megnézzük, hogyan jeleníthető meg az aktuális dátum vagy idő. A függvény két argumentumot vesz fel. Az első, amelyre szükség van, egy karakterlánc, és ez formázza a dátumot.

A második, amely nem kötelező, beállítja az időt. Ha kihagyja a második argumentumot, az alapértelmezés szerint az aktuális dátum és idő lesz. Elvileg nagyon egyszerű. Ami nem olyan egyszerű, az az, hogy megjegyezze a formázási beállításokat. Görgessünk lejjebb, és nézzük meg őket. Több mint 30 formázási karakter található. Néhányat könnyű megjegyezni, de legtöbbjük nem fontos.

Dátum és idő formátum konvertálása PHP-ben

A numerikus dátumértékek érthetőbb értékekké alakításának legegyszerűbb mechanizmusát a következő funkció biztosítja:

tömb getdate()

Egy dátuminformációt tartalmazó asszociatív tömböt ad vissza. Ha az időbélyeg paraméter nincs megadva, akkor a rendszer az aktuális időt adja vissza. Ez a tömb a következő értékeket tartalmazza:

A nevek egyébként mind csak rajta vannak angol. Próbáljunk egy kis ízelítőt. Menjünk a szerkesztőprogramomhoz, és csak a mai napunk lesz. Ezután összekapcsoljuk ezt egy dátumfüggvénnyel, és a formátum karakterlánca kisbetűs 1 lesz. Ha elmentjük, majd megnézzük a böngészőben, akkor azt fogja mondani, hogy "Ma hétfő van". És természetesen ez attól függően változik, hogy a hét melyik napján teszteli.

Kombinálhatja a formázási karaktereket és használhat írásjeleket. Mentse el, és frissítse a böngészőt. Ugyanúgy mutatja az időt, formázási karakterek használatával. Nem frissül, hacsak nem tölti be újra az oldalt a böngészőben. Ahogy a formátum karakterlánc tartalmazhat írásjeleket, sima szöveget is hozzáadhat.

A kapott tömb lehetővé teszi az értékek megjelenítését a kívánt formában:

$dátum = 1418372345;
$date_mas = getdate($dátum);
echo $date_mas["mday" ] . ". ". $date_mas["h" ] . ". ". $date_mas["év" ]; // 2014.12.12


A függvényt a dátum és az idő formátumának konvertálására is használhatja:

string date(string $sablon [, int $unix_timestamp])

Úgy tervezték, hogy lekérje az aktuális unix időbélyegző dátumát a kívánt formátumban. A $template karakterlánc paraméter határozza meg a kimeneti formátumot. A $unix_timestamp paraméterrel megadható, hogy melyik időértékkel dolgozzon. Ez nem kötelező, így ha nincs megadva, akkor az aktuális dátum és idő kerül felhasználásra.

Reméljük, hogy egy adott napon kapunk időpontot. Ha egyszerű szöveget szeretne kapni, ezt kerülnie kell. És ezúttal ezt a tényleges szöveget kapjuk. A dátum függvény előre meghatározott állandókkal is használható. Mindegyik szerepel az online dokumentációban.

Térjünk vissza a dokumentációhoz, és ha egy kicsit görgetünk, láthatjuk, hogy itt van egy hivatkozás az előre meghatározott dátumkonstansokra. Ha ezt követjük, itt vannak az állandók. Kétféle konstans létezik. Mindketten ugyanazt teszik. Nem számít, mit használ, mindegyik támogatott. A dátum funkcióval való munka során a legnehezebb a formázási karakterek emlékezése. Szóval ez van jó ötlet hogy könyvjelzővel jelölje meg az online dokumentációt, ahol mindegyik szerepel.

A formátumot a következő értékek határozzák meg:

a"előtt" és "után" dél: "am" vagy "pm"
A"előtte" és "utána" délben nagybetűkkel: "DE" vagy "PM"
da hónap napja 2 számjeggyel (ha kevesebb, mint 10, nulla előbb) (01-től 31-ig)
Da hét napja 3 betűvel. Például "hétfő" (hétfő)
ja hónap napja 1-2 számjegy kezdő nullák nélkül (1-től 31-ig)
Fa hónap neve. Például "január"
hóra, 12 órás formátum (01-12)
Hórás, 24 órás formátum (00-23)
góra, 12 órás formátum nullák nélkül (1-től 12-ig)
Góra, 24 órás formátum nullák nélkül (0-tól 23-ig)
énperc (00-59)
én (nagy i)1, ha nyári időszámítás van érvényben, ellenkező esetben 0
L1, ha az év szökőév, vagy 0, ha nem szökőév
Bidő internetes időformátumban ( alternatív rendszer napszak visszaszámlálása) (000 és 999 között)
Tszámítógépes időzóna. Például MDT
l (kisbetű L)a hét napja. Például "hétfő"
mhónap, két számjegy nullákkal (01-től 12-ig)
nhónap, egy vagy két számjegy nullák nélkül (1-től 12-ig)
Ma hónap rövidített neve. Például "Jan"
tnapok száma a megadott hónapban (28-tól 31-ig)
smásodperc (0-tól 59-ig)
SAngol kétbetűs sorszám-utótag ("st", "nd", "rd" vagy "th")
Ua UNIX korszak kezdete óta eltelt egész másodpercek száma
yévszám, digitális, 2 számjegy (14)
Yévszám, digitális, 4 számjegy (2014)
zaz év napjának sorszáma (0-tól 365-ig)
Zidőzóna eltolása másodpercben (-43200 és 43200 között)
Na hét napjának sorszáma 1-től (hétfő) 7-ig (vasárnap) az ISO-8601 szabvány szerint (a PHP 5.1.0-ban hozzáadva)
wa hét napjának sorszáma 0-tól (vasárnap) 6-ig (szombat)
Waz év hetének sorszáma az ISO-8601 szabvány szerint; hét hétfőn kezdődik (a PHP 4.1.0-ban hozzáadva)
oévszám az ISO-8601 szabvány szerint. Jelentése megegyezik az Y-vel, kivéve, ha az ISO hét száma (W) az előző vagy a következő évből származik; akkor az adott hét évszáma lesz használva. (hozzáadva a PHP 5.1.0-hoz)
eidőzóna skála kódja. Például: UTC, GMT, Atlanti-óceán/Azori-szigetek (a PHP 5.1.0-ban hozzáadva)
Okülönbség a greenwichi időhöz képest, órákban. Például: +0200
Pkülönbség a greenwichi középidőhöz képest kettősponttal óra és perc között. Például: +02:00 (a PHP 5.1.3-ban hozzáadva)
cdátum ISO 8601 szabvány formátumban Például 2014-12-12T15:19:21+00:00 (hozzáadva a PHP 5-höz)
rdátum » RFC 2822 formátumban Például: Cs, 21 Dec 2000 16:01:07 +0200.
Ua Unix Epoch kezdete óta eltelt másodpercek száma (The Unix Epoch, 1970. január 1. 00:00:00 GMT)

Amint a listából is látható, ezzel a funkcióval sok hasznos dátum adatot kaphat. Például:

Ki kell számítania minden hónap harmadik csütörtökének dátumát vagy a következő pénteket? Megtanulhatja például, hogyan kereshet és állíthat be időzónákat, végezhet dátumszámításokat, amelyek különböző időzónákat és nyári időszámítást tartalmaznak, valamint hogyan számíthatja ki a napkelte és napnyugta időpontját. Kezdje el a böngészést, és tanulja meg, hogyan építheti be ezeket a hatékony funkciókat programozási arzenáljába.

Az aktuális idő és dátum lekérése PHP-ben

Az időzóna a Föld egy olyan régiója, amely jogi, kereskedelmi és társadalmi célokra egységes szabványidővel rendelkezik. A szoros kereskedelmi vagy egyéb kommunikációban részt vevő területeken kényelmesen lehet ugyanazt az időt tartani, így az időzónák általában követik az országok és felosztásaik határait.

$dátum = 1418372345; // kezdeti dátum és időpont 2014.12.12. 11:19:05

echo date("d.m.Y" , $date); // 2014.12.12. (dátum)
echo date("H:i:s" , $date); // 11:19:05 (idő)
echo date("H:i" , $dátum); // 11:19 (idő)
echo date("t" , $dátum); 31 (napok száma egy hónapban)
echo date("z" , $dátum); 345 (az év napjának sorszáma)
echo date("l dS \of F Y h:i:s A" , $date); // 2014. december 12., péntek, 11:19:05

Amikor eljön az idő, fontos annak biztosítása, hogy a felhasználók a helyi idő szerint megjelenített időt kapják a hibák elkerülése érdekében, különösen akkor, ha irodái vagy felhasználói a világ különböző részein vannak. Annak biztosítása érdekében, hogy minden felhasználó mindig használható formátumban jelenjen meg.

Mindkét módszert itt ismertetjük. A következő karakterek használhatók a formátumparaméter-karakterláncban. Ezt használhatja a helyi szerveren, vagy ha van saját szervere. Mindenesetre nem ajánlott a rendszeridőre hagyatkozni.

Számos nagyváros hosszúsági és szélességi foka

Ezért ez a módszer nem ajánlott, ha nem vagy magabiztos. Ez a módszer meglehetősen egyszerű, mivel nincs szükség beállításra. A fenti kód kimenete alább látható. az időt indiai szabványidőben jeleníti meg. A fenti két funkció használata Nem módosíthatja az adatbázisban tárolt időt a kívánt időre.

A mintában szereplő többi karakter a vonalon látható módon kerül kinyomtatásra. Ha egy függvényben formátumkódként használt karaktert kell beírnia, akkor a „\” karakter kerül beszúrásra. A „\n” értékhez (újsor karakter) a „\\n” értéket kell megadnia. Így kiadhat egy teljes üzenetet, amely dátum- és időinformációkat tartalmaz:

Konvertálja az egyik zónában lévő időt egy másik zónává

Ha egy másik zónában van az adatbázisában tárolt idő, és egy másikban szüksége van rá, akkor ezt a fenti dolgokkal nem fogja tudni elérni, még akkor sem, ha különböző időzónát használó felhasználói vannak, ezt a segítségével megteheti. A felhasználó bármikor beállíthatja a kívánt időt, amikor szüksége van rá.

Ehhez létre kell hozni egy szabványt az idő adatbázisban való tárolására. Bármilyen formátum megfelelő, de előfordulhat, hogy még egy kicsit többet kell dolgoznia az átalakítás befejezéséhez. Három lehetőség következik, de előbb van egy probléma. Az időbélyeg csak egy egész szám. Tehát végül elérkeztünk a használathoz. Könnyen használható és a leghatékonyabb az adattábla tárolási helye és a végrehajtási sebesség tekintetében adatok olvasása és írása során.

echo dátum ( "Ma z-edik nap Y év", $dátum); // Ma van 2014 345. napja

A dátum és az idő konvertálása időbélyeg formátumba

Ha egy dátumot normál formátumról numerikus időbélyeg értékké szeretne konvertálni, használja a következő függvényt:

int mktime(]]]]]])

Az mktime() függvény az argumentumai által megadott dátumnak és időpontnak megfelelő Unix-időértéket adja vissza. Például:

Kovácsműhely

Néhány lekérdezés azonban nehezebb lesz, mert a dátum nem szerepel a dátum mezőben, és hosszú távon veszíthet.

Formátum

Ez megjeleníti az összes dátumot a felhasználók helyi időzónájában. A függvények a dátum és az idő eltérő formátumban való lekérésére használhatók.

Ezek a szolgáltatások a webszerver időzóna-beállításaitól függenek. Más karakterek, például a ":" is használhatók a betűk között további formázás hozzáadásához. A formátum karakterlánc kimenetét is testreszabhatja. Lent látható teljes lista formázási lehetőségek.

$sajat_dátum = mktime(10, 30, 0, 12, 12, 2014);

Ügyeljen a függvény argumentumainak sorrendjére: óra, perc, másodperc, hónap, nap, év.

Amellett, hogy egyszerűen létrehoz egy dátumértéket egy időbélyegzőbe, az mktime() függvény is használható a dátumok számtani végrehajtására. Ehhez egyszerűen megadhatja a szükséges argumentumokat. Például, ha megadja a 14. hónapot, akkor a végső értékben a hónap a 2. lesz, és az év értéke eggyel nő:

Ezt a funkciót kell használni a programban, ha más időzónával szeretne dolgozni. Itt kezdődik egy webfejlesztési sorozat a blogom új kiegészítésének részeként, amely ingyenesen használható kódrészleteket és kódrészleteket tartalmaz. Ez a szó szoros értelmében csak az aktuális dátumot húzza be a szervertechnológia segítségével, és valóban könnyen kivitelezhető, nem pedig manuálisan kinyomtatja az évet.

Kezdő és folyó év

Az alábbiakban egy példa a részletekért. Ebben a függvényben minden paraméter az alapértelmezett időzónát használja, kivéve, ha az adott paraméterben időzóna van megadva. Ügyeljen arra, hogy ne használjon különböző időzónákat az egyes beállításokhoz, hacsak nem ez a szándék.

$én_napom = 12;
$saját_hónap = 12;
$én_év = 2014;

$új_dátum = mktime(0, 0, 0, $saját_hónap + 5, $saját_napom, $évem);

echo date("d.m.Y" , $új_dátum); // 2015.12.05. (dátum)

Ugyanezt megteheti más paraméterekkel is.

A dátum érvényességének ellenőrzése PHP-ben

A dátumokkal való munka során, különösen a fent javasolt mktime() függvény segítségével történő dátum generálásakor, figyelembe kell venni a megadott dátum helyességét. Ehhez a PHP a következő függvényt használja:

Az érvényes formátumokat a dátum- és időformátumok magyarázzák. Az időbélyeg a relatív adatok kiszámításának alapja. Kérjük, vegye figyelembe a következő megjegyzéseket a 32 bites rendszerek különbségeivel kapcsolatban. Ennek a függvénynek a használata matematikai számításokhoz nem ajánlott.

Ezek a metódusok statikus állandókat adhatnak át, amelyek meghatározzák a részleteket és a kimenet pontos formázását. Az alap azonban mindig az országbeállítások és az időzóna által meghatározott formázás. A dátum karakterláncokat saját kívánságainak megfelelően formázhatja. Előre definiált statikus formázók egész sorát tartalmazza, amelyek közül néhány itt látható.

bool checkdátum (int hónap, int nap, int év)

Igaz értéket ad vissza, ha az argumentumok által megadott dátum helyes; ellenkező esetben hamis értéket ad vissza. A dátum akkor tekinthető helyesnek, ha:

Év az 1 és 32767 közötti tartományban;

A hónap 1-től 12-ig terjed;

Az adott hónap napja, a szökőéveket is figyelembe véve, helyesen van feltüntetve.

Példa a dátum ellenőrzésére:

$én_napom = 32;
$saját_hónap = 12;
$én_év = 2014;

Elfogadja a karakterláncot előre meghatározott karakterek sablon, amellyel a formázás pontosan vezérelhető. Megint látod, hogy nem mindig találod meg a megoldást, de cselekedned kell a problémával. Egy meglévő dátum konvertálása nagyon egyszerűnek bizonyul, mivel a dátumon belül csak egyes területeket kell felcserélni.

A következő lépésben az átadott adatokat kötőjel segítségével összetevőire bontjuk, majd tömbbé alakítjuk. Végül csak át kell konvertálnunk az egyes dátumkomponenseket tartalmazó tömbünket a megfelelő német dátumra. Csak el kell választanunk a dátumot és az időt.

if (!checkdate($saját_hónapom, $saját_napom, $saját_évem))
visszhang "Hiba: a dátum nem megfelelő";

Az idő vagy a dátum egyéni formátumban történő megjelenítéséhez létezik a dátum funkció.

Ez a példa az aktuális dátumot nap/hónap/év formátumban jeleníti meg számok formájában. Miután elolvasta ezt a cikket a végéig, bármilyen formátumban megjelenítheti az aktuális dátumot és időt.
Ez a funkció lehetővé teszi, hogy ne csak az aktuális dátumot és időt jelenítse meg, hanem az időbélyegzőt is egy meghatározott formátumra konvertálja. Az időbélyeg a Linux alapítása óta eltelt másodpercek száma. Ezt a számot a time() függvény segítségével kaphatjuk meg. A dátum függvényben az időbélyeg egy opcionális paraméter.A szükséges formátum eléréséhez az első paraméterben speciális módosítókat használhat. Elég sok van belőlük.

Végül csak vissza kell adnunk a tömböt a hívónak. Lehetőség van paraméterek átadására is. Használható. Opcionálisan ez a lánc növelhető órákkal, percekkel, másodpercekkel és ezredmásodpercekkel. Vegye figyelembe, hogy a januári értéke 0, a februáré pedig az 1. Ha előbb van időnk, azt mindenhol el lehet tölteni, például az állapotsorban.

A különbség a következőképpen számítható ki. Most már csak egy intervallum hiányzik a kijelző állandó aktiválásához. Kérjük, vegye figyelembe, hogy az űrlapon és minden mezőben egyértelműen meg van jelölve, hogy a hozzáférés hibamentes legyen. A következő szkript dátumot hoz létre az adatokból.

Karakter a formátumbanLeírásPélda visszatérési értékre
aam vagy pm kisbetűvelam, pm
AAM vagy PM nagybetűvelAM, PM
BIdő a Swatch Internet szabványban000-től 999-ig
cDátum ISO 8601 formátumban (a PHP 5-ben hozzáadva)2005-06-11T11:11:11+00:00
dA hónap napja, 2 számjegy, kezdő nullákkal01-31-ig
DA hét napjának rövidített neve, 3 karakterhétfőtől vasárnapig
FA hónap teljes nevejanuártól decemberig
gÓra 12 órás formátumban kezdő nullák nélkül1-től 12-ig
GÓra 24 órás formátumban, kezdő nullák nélkül0-tól 23-ig
hÓra 12 órás formátumban, kezdő nullákkal01-től 12-ig
HÓra 24 órás formátumban, kezdő nullákkal00-23-ig
énPercek kezdő nullákkal00-tól 59-ig
én (nagy i)Nyári időszámítás jele1, ha a dátum a nyári időszámításnak felel meg, egyébként 0 egyébként.
jA hónap napja kezdő nullák nélkül1-től 31-ig
l (kis "L")A hét napjának teljes neveVasárnaptól szombatig
LA szökőév jele1, ha az év szökőév, egyébként 0.
mA hónap sorozatszáma kezdő nullákkal01-től 12-ig
MA hónap rövidített neve, 3 karakterJanuártól decemberig
nA hónap sorozatszáma kezdő nullák nélkül1-től 12-ig
OKülönbség a greenwichi középidőhöz képest órákban+0200
rDátum RFC 2822 formátumban2011. január 28., csütörtök, 15:11:14 +0200
sMásodpercek kezdő nullákkal00-tól 59-ig
SA hónap sorszámának angol utótagja, 2 karakterst, nd, rd vagy th. j-vel együtt használva
tNapok száma egy hónapban28-tól 31-ig
TIdőzóna a szerverenPéldák: EST, MDT...
UA Unix Epoch kezdete óta eltelt másodpercek száma (The Unix Epoch, 1970. január 1., 00:00:00 GMT)1356361196
wA hét napjának sorszáma0-tól (vasárnap) 6-ig (szombat)
WAz év hetének sorszáma az ISO-8601 szerint, a hét első napja hétfő (a PHP 4.1.0-ban hozzáadva)Például: 42 (az év 42. hete)
YAz év sorozatszáma, 4 számjegyPéldák: 1986, 2012
yÉvszám, 2 számjegyPéldák: 86, 12
zAz év napjának sorszáma (0-tól kezdve)0-tól 365-ig
ZAz időzóna eltolása másodpercben. Az UTC-től nyugatra eső időzónák esetében ez negatív szám, az UTC-től keletre lévő időzónákban pedig pozitív.-43200 és 43200 között