Convertir TIMESTAMP en temps unix en PHP?

actuellement je stocke l'heure dans ma base de données comme ceci:2010-05-17 19:13:37

cependant, j'ai besoin de comparer deux fois, et je pense que ce serait plus facile si c'était un timestamp unix comme 1274119041. (Ces deux heures sont différentes)

alors comment pourrais-je convertir le timestamp en unix timestamp? Est-il une simple fonction php?

18
demandé sur Rob 2010-05-17 19:57:56

5 réponses

Vous êtes à la recherche pour strtotime ()

28
répondu Mark 2010-05-17 15:59:49

strtotime:

print strtotime('2010-05-17 19:13:37'); // => 1274123617
9
répondu Matt 2010-05-17 16:00:01

Obtention d'un unixtimestamp:

$unixTimestamp = time();

Conversion au format datetime de mysql:

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

Obtention de certains timestamp mysql:

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

Convertir en un unixtimestamp:

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

...comparer avec un ou plusieurs temps, pour voir si l'Utilisateur a entré un temps réaliste:

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

les horodateurs Unix sont également plus sûrs. Vous pouvez faire ce qui suit pour vérifier si une variable url passée est valide, avant de vérifier (par exemple) gamme précédente vérifier:

if(ctype_digit($_GET["UpdateTimestamp"]))
{...}
4
répondu Florian Mertens 2013-01-10 14:43:20

si vous utilisez MySQL comme base de données, il peut renvoyer des champs de date comme horodatage unix avec UNIX_TIMESTAMP:

SELECT UNIX_TIMESTAMP(my_datetime_field)

vous pouvez aussi le faire du côté de PHP avec strtotime:

strtotime('2010-05-17 19:13:37');
3
répondu webbiedave 2010-05-17 16:04:11

si vous stockez l'heure dans la base de données, Pourquoi ne laissez-vous pas la base de données vous donner aussi l'horodatage unix de celui-ci? voir UNIX_TIMESTAMP(date), par exemple.

SELECT UNIX_TIMESTAMP(date) ...;
2
répondu ax. 2010-05-17 16:10:29