Comment puis-je convertir une chaîne de temps comme celui-ci:Conversion d'une chaîne de temps pour l'horodatage UNIX
30/7/2010
à un horodatage UNIX?
J'ai essayé strtotime()
mais je reçois une chaîne vide :(
Comment puis-je convertir une chaîne de temps comme celui-ci:Conversion d'une chaîne de temps pour l'horodatage UNIX
30/7/2010
à un horodatage UNIX?
J'ai essayé strtotime()
mais je reçois une chaîne vide :(
PHP> = 5.3:
$var = DateTime::createFromFormat('j/n/Y','30/7/2010')->getTimestamp();
cool, ça marche, merci – Alex
Vous voulez probablement utiliser http://us3.php.net/manual/en/function.strptime.php (strptime
) depuis votre date est dans un format différent de ce que PHP peut être attendu.
+1. Si vous avez PHP> = 5.1 et un format de date qui ne fonctionne pas avec strtotime, strptime est définitivement une option. –
Vous pouvez également le convertir en un format strtotime() peut accepter, comme Y/M/D:.
$tmp = explode($date_str);
$converted = implode("/", $tmp[2], $tmp[1], $tmp[0]);
$timestamp = strtotime($converted);
Si vous allez faire cela, vous pourriez tout aussi bien 'mktime (0, 0, 0, $ tmp [1], $ tmp [0], $ tmp [2]);' –
Vous utilisez le format de date UK
Méthode rapide et sale:
$dateValues = explode('/','30/7/2010');
$date = mktime(0,0,0,$dateValues[1],$dateValues[0],$dateValues[2]);
C'est ce que je suis venu avec aussi - n'y at-il vraiment aucune fonction qui prend une chaîne de format de date et une chaîne de date textuelle et renvoie l'horodatage? On dirait un trou bizarre dans l'interface date de PHP –
La réponse PHP 5.3 a été grande
DateTime::createFromFormat('j/n/Y','30/7/2010')->getTimestamp();
Voici une solution < 5.3.0
$timestamp = getUKTimestamp('30/7/2010');
function getUKTimestamp($sDate) {
list($day, $month, $year) = explode('/', $sDate);
return strtotime("$month/$day/$year");
}
'strtotime' ne fonctionne pas parce que (à partir de la doc) "La fonction s'attend à recevoir une chaîne contenant un format de date en anglais américain" –