Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2016-04-06, 21:36


PrzMas

GG: 59825555






Wiek: 31
Na forum: 4000 dni
Posty: 24
Nick w MP: przmas

Piwa: 386

Respekt: 110
Respekt: 110



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.


Postaw piwo autorowi tego posta
 

 
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:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Skrypty do SA-MP » [INCLUDE] Czas uniksowy Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku