2013-05-09 91 views
0

我最近將一個站點從共享主機遷移到虛擬專用服務器。 在共享主機我有PHP 5.2,並在VPS我有PHP 5.3.3。 此遷移後,DateTime類停止響應。 以下代碼用於正常工作,但現在我只獲取$ test輸出。DateTime未響應服務器更改

$test = $vMonth.'/'.$vDay.'/'.$vYear; 
echo $test; 
$date = new DateTime($test); 
if (!$date) { 
    $e = date_get_last_errors(); 
    foreach ($e['errors'] as $error) { 
     echo $error."\n"; 
    } 
    echo "step1"; 
} else { 
    echo $date; 
    echo "step2"; 
} 
$vBday = date_format($date, 'Y-m-d H:i:s'); 
echo "Test0"; 

有誰知道這是否是已知問題?或者如果有解決方法? 謝謝!

EDIT(php.ini中):

error_reporting = E_ALL & ~E_DEPRECATED 
log_errors = On 
display_errors = On 
error_log = /tmp/php_errors.log 
+0

檢查錯誤日誌,並確保您使用'E_ALL'錯誤日誌記錄級別 – zerkms 2013-05-09 04:29:24

+0

error_reporting = E_ALL&〜E_DEPRECATED – Manatax 2013-05-09 05:03:29

+0

那麼錯誤日誌?如果PHP死了 - 這是有原因的, – zerkms 2013-05-09 05:04:51

回答

1

我找到了解決我的問題。顯然,對這個類5.3的很多工作都完成了。主要是爲了支持歐洲和美國的日期風格,並增加對更多格式的支持。這必須包含構造函數的意外更改,因爲它不能識別我以前的格式。 解決的辦法是去爲create from formatISO 8601

$test = $vYear.'-'.$vMonth.'-'.$vDay; 
$date = date_create_from_format("Y-n-j",$test); 
$vBday = date_format($date, 'Y-m-d H:i:s'); 
-1

你檢查的php.ini如果它的配置正確

+0

是的,我已經這麼做了 – Manatax 2013-05-09 05:57:59

0

檢查date.timezone設置爲在php.ini中正確的值。它看起來在某些服務器(或PHP版本?),它是必要的... ...

+0

原來的問題快樂的3歲生日! :P – Manatax 2016-05-15 02:29:38