2010-05-17 16 views
17

Obecnie przechowywać razem w mojej bazy danych tak: 2010-05-17 19:13:37Konwersja TIMESTAMP na czas unixowy w PHP?

Jednak trzeba porównać dwa razy, i czuję, że byłoby łatwiej zrobić, jeśli to było unix timestamp takich jak 1274119041. (Te dwa razy są różne)

Jak mogę przekonwertować znacznik czasu na uniksowy znacznik czasu? Czy jest tam prosta funkcja php?

Odpowiedz

27

Szukacie strtotime()

+0

Thanks to załatwiło sprawę ... ale .. Na somereason MySQL NOW() jest wydzielając inny czas niż TIME(). Jakieś pomysły na ten temat? – Rob

+0

meh, nevermind. Ustawiłem zmienną na time() i wstawiłem ją do bazy danych zamiast NOW(). Dzięki i tak – Rob

9

Chcesz strtotime:

print strtotime('2010-05-17 19:13:37'); // => 1274123617 
3

Jeśli używasz MySQL jako bazy danych, może powrócić pola date jako znacznika czasu UNIX z UNIX_TIMESTAMP:

SELECT UNIX_TIMESTAMP(my_datetime_field) 

Możesz to również zrobić po stronie PHP pod numerem strtotime:

strtotime('2010-05-17 19:13:37'); 
2

jeśli przechowujesz czas w bazie danych, dlaczego nie pozwolisz, aby baza danych podała również jej uniksowy znacznik czasu? patrz UNIX_TIMESTAMP(date), np.

SELECT UNIX_TIMESTAMP(date) ...; 

bazy danych mogą również wykonywać porównania i arytmetyczne daty i godziny.

4

Pierwsze unixtimestamp:

$unixTimestamp = time(); 

Konwersja do mysql formacie datetime:

$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp); 

Pierwsze pewne mysql timestamp:

$mysqlTimestamp = '2013-01-10 12:13:37'; 

przekształcenie go do unixtimestamp:

$unixTimestamp = strtotime('2010-05-17 19:13:37'); 

... porównanie go z jednego lub wielu razy, aby sprawdzić, czy użytkownik wprowadził realistyczny czas:

if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15")) 
{...} 

uniksowe znaczniki czasu są bezpieczniejsze też. Można wykonać następujące czynności, aby sprawdzić, czy zmienna przekazywana URL jest prawidłowy, przed sprawdzeniem (na przykład) poprzedniego sprawdzianu zakres:

if(ctype_digit($_GET["UpdateTimestamp"])) 
{...}