2015-10-19 43 views
0

DateTime類(以及DatePeriod和DateInterval)似乎無法在我的當前服務器上工作。 PHP 5.3.3是按每的phpinfo頁安裝,當我運行get_declared_classes()函數作爲數組,看看定義了什麼類,這些類似乎的確存在:DateTime類不能在PHP/Apache中工作

Array ([0] => stdClass [1] => Exception [2] => ErrorException [3] => Closure [4] => DateTime [5] => DateTimeZone [6] => DateInterval [7] => DatePeriod [8] => LibXMLError...

不過,就算我跑最簡單的有日期時間PHP代碼,我會得到一個HTTP 500錯誤:

$date = new DateTime('2000-01-01'); 
echo $date->format('Y-m-d H:i:s'); 

這個老的表示形式不正常工作,

$date = date_create('2000-01-01'); 
echo date_format($date, 'Y-m-d H:i:s'); 

但由於某些原因,日期時間將無法正常工作。我在不同的服務器上使用這些DateTime對象編寫了一些代碼,並且它工作正常。關於我可能出現錯誤的想法?有沒有我應該考慮的php.ini或其他設置?

-JF

+1

什麼你正在使用PHP版本? –

+0

試試'echo($ date-> format(「Y-m-d H:i:s」));'而不是更好? 'echo {$ date-> format(「Y-m-d H:i:s」)};'?回聲有時可以用'$ obj-> function();'; notation –

+0

@JonStory完成奇怪的事情,OP的代碼完美工作(在phpfiddle.org上試用),這是因爲我問了什麼PHP版本正在使用。在PHP> 5.2這是可以的,在很少或許這是錯誤的 –

回答

1

我最好的猜測是您在命名空間中的一類使用它,因此日期時間需要一個\ 請發表您的類的更多的代碼,我們可以幫助你。

因此,這是它如何可能會工作(介意反斜線\

$date = new \DateTime('2000-01-01'); 

也請您發佈錯誤的500消息,你可能會發現它在你的服務器的error.log中。

0

我在這裏有類似的問題...

這是在php.ini中的默認時區,你可以在你的腳本中使用date_default_timezone_set()或改變它在php.ini