PHP Zend_date将now()插入db

时间:2014-01-30 11:15:40

标签: php mysql zend-framework

我正在使用php和zend框架创建一个Web应用程序,并尝试使用此代码向数据库插入一个新行:

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 price_watcher_price SET tme ='2014-48-30 10:48:42'WHERE(id ='40')

仔细查看查询,您可以看到它在日期字符串中发送minute而不是month,而mysql拒绝它。 而更奇怪的是,当我echo时,我得到了这个:

  

2014年1月30日上午11:07:08

这里的月份还可以。重要的是我的服务器是linux,本地系统是windows。  问题在哪里?

1 个答案:

答案 0 :(得分: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的列表。

感谢您的帮助。