2009-08-20 5 views
0

ich ein Datum in folgendem Format habenphp make date mit Format mm-dd-yyyy

MM-DD-YYYY

Wie kann ich konvertieren, dies zu UNIX Zeit in PHP

Dank

Having ein kleines Problem

$date = strtotime($_POST['retDate']); 
print $date; //Prints nothing 
print $_POST['retDate']; //Prints 08-18-2009 

Antwort

2

Wenn das Format immer so ist, würde ich so etwas wie versuchen würde:

list($m,$d,$y) = explode('-', '08-18-2009'); 
$time = mktime(0, 0, 0, $m, $d, $y); 
print date('m-d-Y', $time); 

Wie für Ihr Beispiel ist das Problem, die Funktion fehlschlägt. Sie sollten es wie so überprüfen:

if(($time=strtotime('08-18-2009'))!==false) 
{ 
// valid time format 
} 
else 
echo 'You entered an invalid time format'; 
+0

danke, mktime hat den Trick gemacht –

1

Verwenden Sie s trtotime:

$str = "03-31-2009"; 
$unixtime = strtotime($str); 
2

oder können Sie PHP-Datum obyek verwenden, das zu tun, wie diese

$tgl = "30-12-2013"; 
$tgl2 = DateTime::createFromFormat('d-m-Y', $tgl); 
print_r($tgl2); 
echo($tgl2->format('Y-m-d')); 

i Diese Hoffnung kann helfen ...

0

Da diese Antworten und Kommentare wurden zur Verfügung gestellt, PHP wurde aktualisiert, um eine native Funktion zu integrieren, die perfekt zu dieser Situation passt. Überprüfen Sie PHP's DateTime object here. Dies beinhaltet eine createFromFormat Methode, die wie gewünscht funktioniert. In diesem speziellen Beispiel:

$date = DateTime::createFromFormat('j-M-Y', $_POST['retDate']); 

Von dort können Sie es wie gewünscht formatieren oder andere Datum Operationen ausführen:

echo $date->format('Y-m-d'); 

Und das ist es! Beachten Sie, dass dies nur in PHP 5.3.0 oder höher zur Verfügung steht!