2013-03-11 27 views
4

我想在PHP中轉換日期格式。無法繞過此錯誤:調用未定義的方法DateTime :: createFromFormat()

下面的代碼創建持久性錯誤

$myDate = "31/12/1980"; 

$myDateTime = DateTime::createFromFormat('d/m/Y', "$myDate"); 

$newDate = $myDateTime->format('d M Y'); 

echo $newDate; 

含createFromFormat線()不斷產生錯誤:「‘調用未定義的方法’ 這與我的測試Apache服務器和實際的服務器出現兩個,兩者都運行PHP 5.3+

我需要包括或需要額外的文件 請幫助 - 我只在PHP低中間

+1

什麼PHP版本正在運行?使用'phpinfo()檢查' – 2013-03-11 14:27:09

+1

你是否在任何地方使用命名空間? – 2013-03-11 14:28:36

回答

-2

這通常發生如果。該方法無法找到,這意味着您沒有包含包含此方法的文件。你能發佈DateTime :: createFromFormat的代碼嗎?

+4

這是一個以PHP 5.3開頭的內置PHP函數 – 2013-03-11 14:38:05

+0

感謝您的關注; PHP版本是5.3.16;唯一使用DateTime的代碼是我引用的示例 – user2157155 2013-03-11 19:15:47

+0

感謝您的關注 – user2157155 2013-03-11 19:16:46

-2

我找到了解決方案。 的日期轉換正確的語法是:

$myDate = "01-12-1980"; 
$tempDate = date_create("$myDate"); 
$newDate = date_format($tempDate, 'j M Y'); 
echo "$newDate"; 

生成輸出:1980年12月1日 (J,而不要d刪除從天數的0)

請注意:

$newDate = date("d M Y", strtotime($myDate)); 

在此示例中不起作用,因爲預期的輸入格式爲mm/dd/yyyy,使用任何其他格式將產生不正確的輸出日期

+0

您所做的與'date(「j MY」,strtotime($ myDate))'完全相同,只是使用過程接口DateTime類。它不等同於'DateTime :: createFromFormat'。 – deceze 2013-04-18 04:31:31

4

只有 2爲什麼你應該得到這個錯誤可能的原因有:

  1. 您在使用PHP 5.3+其實不是,這樣的方法並不存在。仔細檢查你的代碼運行在哪個PHP版本上。也許你的Web服務器配置有一個哎呀。如果確實如此,並且您無法更改,請參閱PHP DateTime::createFromFormat in 5.2?以瞭解替代方案。
  2. 你在一個命名空間,需要調用它像\DateTime::createFromFormat(...)
相關問題