Bloc-note d'un développeur web
Dans : Snippets
10 mar 2010Mise à jour à 10:57
Plus simple, rapide, intégré, toussa : utiliser strtotime tout simplement.
Merci à Éric Daspet et à Oncle Tom pour le rappel.
Une fonction utilitaire1 pour convertir une chaîne de type DATETIME ou DATE en un timestamp UNIX.
Les formats pris en charges en entrée sont AAAA-MM-JJ HH:MM:SS et AA-MM-JJ HH:MM:SS. L’heure étant optionnelle dans le cas de la conversion d’une date.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php /** * Get UNIX timestamp for a date or date time. * * Example: * <code> * <?php * unix_timestamp('2010-03-09 22:43:46'); # 1268171026 * unix_timestamp('10-03-09 22:43:46'); # 1268171026 * unix_timestamp('2010-03-09'); # 1268089200 * ?> * </code> * * @author Mehdi Kabab <http://pioupioum.fr/> * @copyright 2010 Mehdi Kabab * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://pioupioum.fr/snippets/php-convertir-datetime-unix-timestamp.html * * @param string The date or datetime to convert. * @return int The UNIX timestamp corresponding to the datetime. */ function unix_timestamp($date) { $date = str_replace(array(' ', ':'), '-', $date); $c = explode('-', $date); $c = array_pad($c, 6, 0); array_walk($c, 'intval'); return mktime($c[3], $c[4], $c[5], $c[1], $c[2], $c[0]); } |
vous allez dire qu’il en existe pléthore, mais je les trouve toutes trop lourdes (conditions, strlen, multiples explode, etc) pour le peu à faire. Sans parler du fait qu’elles ne supportent uniquement que le format DATETIME. ↩
Ou alors, si t’es paresseux, tu demandes à MySQL
Sinon tu passes par strptime pour découper la date en tableau
Tu peux aussi passer par
strtotimeou la classeDateTime, qui le fait probablement aussi bien et nativement :-pOù sinon via la méthode createFromFormat() de la classe DateTime implémenté en php 5.3 qui permet de convertir à la volé n’importe quel format de date
En effet, vive DateTime().
ne SURTOUT pas oublier de gérer le timezone en utilisant les fonctions de dates.
http://www.php.net/manual/fr/function.date-default-timezone-set.php