2012-03-28 8 views

Antwort

41

z.

<?php 
$s = '8/29/2011 11:16:12 AM'; 
$dt = new DateTime($s); 

$date = $dt->format('m/d/Y'); 
$time = $dt->format('H:i:s'); 

echo $date, ' | ', $time; 

siehe http://docs.php.net/class.datetime


edit: die AM/PM-Format verwenden, um zu halten

$time = $dt->format('h:i:s A'); 
1

Diese den Trick tun sollten:

$mystring_datetime = ....; 
$dt = DateTime::createFromFormat('m/d/Y H:i:s A', $mystring_datetime); 
$d = $dt->format('m/d/Y'); 
$t = $dt->format('H:i:s A'); 

Sie auch tun könnte etwas wie das aber es ‚S nicht bevorzugt Weg:

$mystring_datetime = ....; 
list($date, $time) = explode(' ', $mystring_datetime, 2); 

Nun $date und $time entsprechende Werte haben ...

+0

thnx für die antwort funktioniert gut ..... – user1153176

2

Wenn Ihre Version von PHP neu genug ist, überprüft date_parse() und das Array es zurückgibt. Sie können dann Datums- oder Zeitabschnitte mit den entsprechenden Einträgen formatieren.

3

Dies ist wahrscheinlich nicht der sauberste Weg, aber Sie können eine Explosion verwenden (beachten Sie, dass es hier KEINE Validierung gibt). Es wird schneller als eine richtige Datumsmanipulation sein.

$str = '8/29/2011 11:16:12 AM'; 
$dates = explode(' ', $str); 
$dat = $dates[0]; 
$time = $dates[1]; 
5
<?php 
    $date = strtotime('8/29/2011 11:16:12 AM'); 
    $dat = date('m/d/y', $date); 
    $tme = date('H:m:s A',$date); 

?> 

Weitere Informationen über die Funktion date() zu finden, plz besuchen http://php.net/manual/en/function.date.php

3

Sie können die Funktion strtotime verwenden, solange die Daten nach dem 1.1.1970 -

liegen
<?php 

$s = strtotime('8/29/2011 11:16:12 AM'); 

$date = date('m/d/Y', $s); 
$time = date('H:i:s A', $s); 

?> 

http://php.net/manual/en/function.strtotime.php

strtotime erstellt einen UNIX-Zeitstempel aus der Zeichenfolge, die Sie ihm übergeben.

Verwandte Themen