2016-05-18 11 views
-2

Ich habe eine jquery Funktion, die das Datum '27/05/2016 11:25 PM 'in eine PHP-Datei übergibt. Die PHP-Datei wird dies auf die Datenbank aktualisieren.PHP strtotime gibt false zurück

Ich verwende strtotime, um diese Zeichenfolge in das Datumsformat '05/27/2016 11:25 PM 'zu konvertieren, aber strtotime gibt false zurück.

Meine PHP-Datumsumstellung:

$EndDate = strtotime($Date); 
$NewEndDateValue = date('m/d/Y h:i A', $EndDate); 

var_dump($NewEndDateValue); //this returns false 
+1

dann "$ Date" fehlgeschlagen. –

+2

Sie haben ziemlich viele nicht akzeptierte Antworten BTW. also, alles ungelöst nehme ich es? oder du weißt einfach nicht, wie [Stack rollt] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ;-) –

+3

Wenn du ein Date passierst mit '/' Trennzeichen zu strtotime(), dann behandelt PHP es als US-Format (m/d/Y) ___ wie in der [PHP-Dokumentation] beschrieben (http://www.php.net/manual/en/datetime.formats) .date.php) ___, und es gibt keinen Monat 27 im Kalender, also wirst du eine falsche Antwort erhalten, weil sie ungültig ist –

Antwort

2

strtotime() standardmäßig behandelt Daten mit / seperators als wierd USA Format für Datumsangaben, wo sie in der Mitte eines Datums zu beginnen und nach außen von dort (go figure) . Es ist in Ordnung, es so zu sagen, aber völlig unlogisch zu erwarten, dass eine logische Maschine (Computer) so funktioniert.

Wie auch immer, alles, was Sie tun müssen, ist die / in eine - konvertieren und date() wird ein logisches Datumsformat annehmen und daher funktionieren.

<?php 
$Date = '27/05/2016 11:25 PM'; 
$dat = str_replace('/', '-', $Date); 
$EndDate = strtotime($dat); 

$NewEndDateValue = date('m/d/Y h:i A', $EndDate); 

var_dump($NewEndDateValue); // "05/27/2016 11:25 PM" 
+1

Das Ersetzen von '/' mit '.' funktioniert auch. –

+0

@ EduardoGalván Ich wusste das nicht, nützliche Informationen – RiggsFolly

+0

OoOOoooooooh nein !!! Bitte lass sie dich nicht in dieses Loch jagen !!! –