2017-10-11 4 views
1

Une trop grande précision des secondes provoque l'échec de strtotime lorsque l'entrée est une chaîne de date/heure ISO 8601. Y a-t-il un moyen de contourner cela en PHP?strtotime défaillant avec trop de secondes de précision

strtotime('2017-10-11T22:49:52.123456789Z'); //returns false 
+0

Avez-vous besoin d'une telle précision dans votre code PHP? – Phil

+1

Si vous êtes en mesure de modifier la chaîne pour la réduire à la précision de la milliseconde, alors 'new DateTime ('2017-10-11T22: 49: 52.123Z')' produit un objet valide – Phil

Répondre

0

La plus petite entité avec strtotime est une seconde. Si cela est correct comme résultat le faire comme ceci:

$str = '2017-10-11T22:49:52.123456789Z'; 
$time = strtotime(substr($str, 0, 19)); 
echo $time; 
0
$str = '2017-10-11T22:49:52.123456789Z'; 
$split = explode(".", $str); 
$time = strtotime($split[0]); #2017-10-11T22:49:52 
echo $time; #1507751392 

C'est la façon dont vous l'obtenez :) J'espère que son vous aide.