Comme indiqué dans le titre : comment convertir une date sous forme de chaîne (YYYY-MM-DD) en époque (secondes depuis le 01-01-1970) en PHP
Réponses
Trop de publicités?Peut-être que cela répond à votre question
http://www.epochconverter.com/programming/functions-php.php
Voici le contenu du lien :
Il existe de nombreuses options :
- Utilisation de 'strtotime' :
strtotime analyse la plupart des textes de date en anglais en temps d'époque/Unix.
echo strtotime("15 novembre 2012");
// ... ou ...
echo strtotime("2012/11/15");
// ... ou ...
echo strtotime("+10 jours"); // 10 jours à partir de maintenant
Il est important de vérifier si la conversion a réussi :
// PHP 5.1.0 ou supérieur, versions antérieures vérifient : strtotime($string)) === -1
if ((strtotime("ce n'est pas une date")) === false) {
echo 'échec';
}
2. Utilisation de la classe DateTime :
La classe DateTime de PHP 5 est plus agréable à utiliser :
// orienté objet
$date = new DateTime('01/15/2010'); // format : MM/JJ/AAAA
echo $date->format('U');
// ou procédural
$date = date_create('01/15/2010');
echo date_format($date, 'U');
Le format de date 'U' convertit la date en un timestamp UNIX.
- Utilisation de 'mktime' :
Cette version est un peu plus contraignante mais fonctionne sur n'importe quelle version de PHP.
// PHP 5.1+
date_default_timezone_set('UTC'); // optionnel
mktime ( $heure, $minute, $seconde, $mois, $jour, $année );
// avant PHP 5.1
mktime ( $heure, $minute, $seconde, $mois, $jour, $année, $is_dst );
// $is_dst : 1 = heure d'été (DST), 0 = pas d'heure d'été, -1 (par défaut) = auto
// exemple : générer une époque pour le 1er janvier 2000 (toutes les versions de PHP)
echo mktime(0, 0, 0, 1, 1, 2000);
Essayer ceci :
$date = '2013-03-13';
$dt = new DateTime($date);
echo $dt->getTimestamp();
Réf : http://www.php.net/manual/en/datetime.gettimestamp.php
Utilisez la fonction strtotime() :
strtotime('2013-03-13');