|
Wysłany: 2016-04-06, 21:36
|
|
PrzMas
GG: 59825555


Wiek: 31 Na forum: 4000 dni Posty: 24
Nick w MP: przmas
Piwa: 386
|
|
|
|
Jak wiadomo SA-MP'owa funkcja gettime (wywo?ana bez przekazywania do niej argument?w) zwraca czas uniksowy aktualny w danym systemie operacyjnym, jednak bez uwzgl?dnienia strefy czasowej oraz czasu letniego. W niniejszym temacie publikuj? funkcje operuj?ce na niniejszym czasie, jedna przelicza podan? dat? i godzin? na znacznik (z mo?liwo?ci? odliczenia strefy czasowej oraz czasu letniego):
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi) | | Wiadomość została ukryta, aby ją przeczytać należy się zalogować. |
a druga znacznik na dat?, godzin? oraz dzie? tygodnia (warto?? 1-7) z uwzgl?dnieniem strefy czasowej oraz czasu letniego:
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi) | | Wiadomość została ukryta, aby ją przeczytać należy się zalogować. |
Dodatkowo prosta funkcja wyliczaj?ca ilo?? dni, godzin, minut i sekund z podanej r??nicy dw?ch znacznik?w:
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi) | | Wiadomość została ukryta, aby ją przeczytać należy się zalogować. |
Najcz??ciej zadawane pytania (FAQ)
1. Jak zorganizowa? prosty algorytm czasowej rangi VIP na serwerze z wykorzystaniem znacznika czasu uniksowego?
Nale?y zapisa? zwr?cony przez funkcj? gettime() znacznik zwi?kszony o okre?lony czas:
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi) | | Wiadomość została ukryta, aby ją przeczytać należy się zalogować. |
do bazy danych albo systemu plik?w.
Sprawdzanie czy ranga VIP jest nadal aktywna mo?e wygl?da? nast?puj?co:
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi) | | Wiadomość została ukryta, aby ją przeczytać należy się zalogować. |
Zmienna vip_expiry reprezentuje odpowiedni? warto?? pobran? z bazy danych lub systemu plik?w.
2. Jak wy?wietli? aktualn? dat?, godzin? i dzie? tygodnia na podstawie znacznika uniksowego?
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi) | | Wiadomość została ukryta, aby ją przeczytać należy się zalogować. |
3. Jak sprawdzi? czy okre?lona data jest zgodna z kalendarzem oraz czasem uniksowym?
Dla przyk?adu mo?na utworzy? funkcj? isvaliddate(), kt?ra zwr?ci prawd? (1) dla poprawnej daty:
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi) | | Wiadomość została ukryta, aby ją przeczytać należy się zalogować. |
Nieprawid?owe daty to: 30 lutego (luty ma najwy?ej 29 dni, je?li jest w roku przest?pnym), 32 stycznia (miesi?c ma najwy?ej 31 dni), 1 stycznia 2039 roku (limit czasu uniksowego to 19 stycznia 2038 roku o godzinie 03:14:07).
Uwagi og?lne
Por?wnywane znaczniki powinny by? wzgl?dem siebie w jednakowej postaci (nie w sensie r?wne), czyli je?eli jeden jest ze strefy czasowej GMT +1:00 a drugi GMT +0:00 to nale?y od pierwszego odj?? jedn? godzin? i dopiero w?wczas por?wnywa? obydwa znaczniki. Funkcja gettime() celowo zwraca warto??/znacznik bez uwzgl?dniania strefy czasowej i czasu letniego, bowiem w takiej postaci nie zajd? rozbie?no?ci podczas por?wna? i obliczania r??nic, zw?aszcza je?li chodzi o czas letni. Strefy czasowej i czasu letniego nale?y u?ywa? jedynie podczas wy?wietlania danego znacznika przeliczonego do postaci sformatowanej i czytelnej dla cz?owieka.
Je?eli ma by? przeliczana (do p??niejszych operacji) data (i godzina) podana r?cznie przez u?ytkownika (sczytana np sscanf-em) to dla funkcji date2unix() nale?y uwzgl?dni? argumenty timezone oraz auto_dst.
|
|
|
|
|
|
Więcej szczegółów
|
Wystawiono 6 piw(a): JRmaster, Mac, JestemSuperLIKE, DsJ3, rxkrxd, Jellonek |
 |
| Tagi: czas :: uniksowy |
Anonymous


Na forum: 245 dni
Posty: 1

|
Anonymous Koniecznie zajrzyj na:
|
|
|
|
|