BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 117 | UU: 3344

Konwersja daty do formatu timestamp

Timestamp inny niż aktualny można uzyskać na różne sposoby, które trzeba wykorzystać odpowiednio do zastosowania.

Jeśli dostępna jest 'rozbita' data, czyli w osobnych zmiennych dzień, miesiąc, rok itp., lub można do takiej sytuacji doprowadzić przez odpowiednie użycie funkcji explode() lub substr(), można użyć funkcji mktime(). Funkcja ta jako argumenty przyjmuje odpowiednio godzinę, minutę, sekundę, miesiąc, dzień, rok i opcjonalnie informację o "daylight saving", czyli czasie letnim (wartość 1 oznacza czas letni, 0 w przeciwnym przypadku, lub -1, wartość domyślną, jeśli PHP ma samo zgadywać).

Przykład 12.4. Generowanie timestampu



<?php
   $dzien   
10;
   
$miesiac 4;
   
$rok     2002;
   
$godzina 12;
   
$minuta  32;
   
$sekunda 0;
   
$ts mktime($godzina, , $sekunda$miesiac$dzien$rok);
?>

Jeśli data jest zapisana jako string, lecz w jednym z formatów rozpoznawanych przez PHP, string ten można przekonwertować do timestamp używając funkcji strtotime(). Data składa się z kilku elementów, oddzielonych „białymi znakami” (spacja, znak tabulacji). Białe znaki można pominąć, jeśli nie powoduje to żadnych wieloznaczności. Elementy daty to część kalendarzowa, część zegarowa, strefa czasowa, część wyłącznie liczbowa. Kolejność tych elementów nie ma znaczenia. Dwa inne elementy, dzień tygodnia i przesunięcie czasowe, zostaną opisane w dalszej części rozdziału.

Część kalendarzowa

Część ta określa konkretny dzień roku. Może być podana na jeden z wielu sposobów.


1970-09-17           # Zapis zgodny z ISO 8601.
70-9-17              # Domyślnie przyjmuje się bieżący wiek
70-09-17             # Wszystkie początkowe zera są ignorowane
9/17/72
24 September 1972
24 Sept 72           # Specjalny skrót słowa September
24 Sep 72            # Wszędzie dopuszczalne są trzyliterowe skróty
Sep 24, 1972
24-sep-72
24sep72

            

Dopuszczalne są angielskie nazwy miesięcy: `January', `February', `March', `April', `May', `June', `July', `August', `September', `October', `November' `December' oraz ich trzyliterowe skróty.

Część zegarowa

Dopuszczalne formaty:


20:02:0
20:02
8:02pm
20:02-0500           # z podaniem strefy czasowej

            

Mówiąc ogólnie, podstawowy format to gg:mm:ss, przy czym część sekundową można pominąć. Jeśli na końcu dodany zostanie wskażnik am (rano - inna forma to a.m.) lub pm (po południu - p.m.), to część godzinowa ograniczona jest do zakresu 1-12. W takim zapisie północ to 12am, południe - 12pm; część minutowa może być pominęta.

Opcjonalnie, od razu po czasie może zostać podana strefa czasowa w formacie "zggmm", gdzie "z" to odpowiedni znak + lub -, zależnie od strefy, gg to ilość godzin a mm ilość minut przesunięcia.

Strefa czasowa

Strefa czasowa może zostać określona tak samo jak w przypadku informacji "doklejonej" do części zegarowej.

Część liczbowa

Liczby w postaci rrrrmmdd, jeśli wcześniej nie było części kalendarzowej, traktowane są jako te części. Podobnie liczby w postaci ggmm jest traktowana jako część zegarowa, jeśli nie było takiej wcześniej.

Dokładny opis formatów rozpoznawanych przez funkcję strtotime() można znaleźć pod adresem http://www.gnu.org/software/tar/manual/html_manualspistresci/tar_7.html

Copyright © 2006-2011 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker