2009-08-20 49 views
0

我有以下格式PHP的製造日期

MM-DD-YYYY

日期我怎樣才能將它轉換爲UNIX時間在PHP

感謝

有一個小問題

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

回答

2

如果格式總是這樣,我會嘗試這樣的:

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

至於你的榜樣,問題是功能失效。您應該檢查它像這樣:

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

謝謝,mktime做的伎倆 – 2009-08-21 13:54:27

1

使用s trtotime

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

,或者您可以使用PHP日期obyek要做到這一點,像這樣

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

我希望這可以幫助...

0

因爲這些答案,提供了評論,PHP已更新爲包含完全適合這種情況的本地函數。退房PHP's DateTime object here。這包括將按要求做的createFromFormat方法。在這個特殊的例子:

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

從那裏,你可以格式化,並根據需要或執行任何其他日期的操作:

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

就是這樣!請記住,這僅在PHP 5.3.0或更高版本中提供!