2017-10-11 2 views
1

Zu lange Zeitgenauigkeit führt dazu, dass strtotime fehlschlägt, wenn die Eingabe eine ISO 8601 Datetime-Zeichenfolge ist. Gibt es einen Weg in PHP?strtotime schlägt mit zu hoher Sekundengenauigkeit fehl

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

Benötigen Sie eine solche Genauigkeit in Ihrem PHP-Code? – Phil

+1

Wenn Sie die Zeichenfolge ändern können, um sie auf Millisekundengenauigkeit zu reduzieren, erzeugt 'new DateTime ('2017-10-11T22: 49: 52.123Z')' ein gültiges Objekt – Phil

Antwort

0

Die kleinste Einheit mit strtotime ist eine Sekunde. Wenn dies als Ergebnis ok ist nur tun es etwa so:

$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 

Dies ist so, wie Sie es bekommen :) Ich hoffe, seine Ihnen hilft.