Преобразование TIMESTAMP в unix-время в PHP?

В настоящее время я храню время в своей базе данных так: 2010-05-17 19:13:37

Тем не менее, мне нужно сравнить два раза, и я чувствую, что было бы легче сделать, если бы это была временная отметка unix, такая как 1274119041 . (Эти два раза разные)

Итак, как мне преобразовать временную метку в временную метку unix? Есть ли для него простая функция php?

Вы ищете strtotime ()

Вы хотите strtotime :

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

Получение unixtimestamp:

 $unixTimestamp = time(); 

Преобразование в формат mysql datetime:

 $mysqlTimestamp = date("Ymd H:i:s", $unixTimestamp); 

Получение некоторой метки времени mysql:

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

Преобразование его в unixtimestamp:

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

… сравнивая его с одним или несколькими раз, чтобы узнать, вступил ли пользователь в реалистичное время:

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

Метки времени Unix также более безопасны. Вы можете сделать следующее, чтобы проверить правильность переданной переменной URL, прежде чем проверять (например) предыдущую проверку диапазона:

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

Если вы используете MySQL в качестве своей базы данных, она может возвращать поля даты в качестве временных меток unix с помощью UNIX_TIMESTAMP :

 SELECT UNIX_TIMESTAMP(my_datetime_field) 

Вы также можете сделать это на стороне PHP с помощью strtotime :

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

если вы храните время в базе данных, почему бы вам не позволить базе данных также предоставить вам временную метку unix? см. UNIX_TIMESTAMP(date) , например.

 SELECT UNIX_TIMESTAMP(date) ...; 

базы данных также могут проводить сопоставление дат и времени и арифметику.