2015-12-08 72 views
1

我在php中的日期有問題 - 有時日期以d/m/y和其他時間以d/m/Y到達我們。我想將所有日期轉換爲d/m/Y。PHP日期年格式

使用我當前的數據集,我將如何從24/06/15使用php獲取24/06/2015?

到目前爲止,我曾嘗試:

$original_date = '24/06/15'; 

$new_date = date('d/m/Y', strtotime($original_date)); 

此帶回01/01/1970

+2

$日期=日期( 'd/M/Y',的strtotime($原始)); –

+0

也許[strtotime](http://php.net/manual/en/function.strtotime.php)是你在找什麼? – Jan

+1

請修復a)你的任務或b)你的例子。描述的任務沒有說明'Y- = 1'。 – nonchip

回答

3

這可能是最可靠的方法:

$string = '24/06/15'; 
$date = DateTime::createFromFormat('d/m/y', $string) ?: DateTime::createFromFormat('d/m/Y', $string); 
echo $date->format('d/m/Y'); 

createFromFormat回報false如果你嘗試使用d/m/y格式解析24/06/2014,所以在這種情況下,您只需以d/m/Y重試。然後您會得到一個DateTime對象,您可以按照自己喜歡的方式進行格式化和輸出。

0

使用小寫字母'y'。請參閱PHP日期manual

$new_date = date('d/m/y', strtotime($original_date)); 

Y =一年

+0

我沒有投票,但我認爲它是因爲我問了Y –

+0

「date('d/m/y',strtotime($ original_date));」部分應該工作。是嗎? –

+0

這將輸出「01/01/70」而不是「01/01/1970」。幾乎沒有任何改進。 – deceze

-1

您正在使用strtotime其日期的格式錯誤的2位數字表示。

看一看Date Formats

正確的代碼應該有

$original_date = '15/06/24'; // Notice : its mm/dd/yy here 

$new_date = date('d/m/Y', strtotime($original_date)); 
0

的問題是的strtotime不首先承認英國的日期格式,所以轉換格式然後格式化日期。

嘗試這種情況:

$original_date = "24/06/15"; 
list($date,$month,$year) = sscanf($original_date, "%d/%d/%d"); 
$date_convert = $year."-".$month."-".$date; 
$new_date = date("d/m/Y", strtotime($date_convert)); 
echo $new_date;