2014-01-30 23 views
0

我使用PHP和Zend框架創建Web應用程序,並嘗試使用此代碼插入新行到數據庫:PHP Zend_Date的運算現在()插入到數據庫

class PriceWatcher_PriceTable extends Zend_Db_Table_Abstract { 

protected $_name = 'price_watcher_price'; 
public function newPrice($data) 
{ 
    $data['tme']=Zend_Date::now(); 
    $this->insert($data); 
}} 

我已經列在我的數據庫稱爲tme格式爲datetime。當我上傳這段代碼在服務器上,它完美的作品,但試圖運行時,它在本地存儲

0000-00-00 00:00:00

我檢查MySQL的日誌查詢和發現此查詢:

UPDATE SET price_watcher_pricetme = '2014-48-30 10點48分42秒' WHERE(id = '40' )

仔細查看查詢,可以看到它發送了minute而不是日期字符串中的month,並且mysql拒絕它。 而一些更奇怪的是,當我echo它,我得到這個:

2014年1月30日上午11時07分08秒

這裏一個月OK.Something重要的是,我的服務器是Linux和我的本地系統是Windows。 問題在哪裏?

+0

你想插入或更新? –

+0

沒有區別。插入和更新日期失敗。我找到了解決方案,它的工作原理! – Abadis

回答

0

我找到了答案我自己。在您的Bootstrap.php看跌添加以下代碼的功能_init_Loader_Autoloader

date_default_timezone_set ('Asia/Tehran'); 
$locale = new Zend_Locale ('fa_IR'); 
Zend_Registry::set ('Zend_Locale', $locale); 

,如果你沒有這個函數創建它,將代碼放在它。將Asia/Tehranfa_IR更改爲您自己的時區。在我的情況下,我必須使用它們。 你可以看到php時區列表here。 你可以看到zend_locales here的列表。

感謝您的幫助。