我最近將網站移至新主機。服務器設置非常相似。我用簡單的apache來複制新服務器上的配置。Zend Framework - 日期問題
但是,在前一臺服務器上運行得很好的相同Zend框架Web應用程序在新服務器上存在此日期問題。
無論使用其中任何一種,插入到mysql datetime列的日期都不正確。
$row->creation_date = date('Y-m-d H:i:s');
$row->creation_date = date('Y-m-d H:i:s', TRUE);
在datetime列的值是0000-00-00 00:00:00
如果我改變數據類型在MySQL喜歡VARCHAR,該值爲2012
如果我添加一行權下的$行電話, mail(),給我發送date()的值,我得到正確的時間戳。
如果我Concat的日期()的值存儲在不同的列同一行的另一個值,我得到1970-01-01 00:00:01
我難倒!
有什麼建議嗎?
編輯
代碼沒有變化,從老遷移到新的服務器之間進行。
舊服務器 Zend引擎V2.3.0,版權所有(C)1998-2011 Zend技術 與Ioncube公司PHP裝載機v4.0.9,版權所有(C)2002-2011,由Ioncube公司有限公司和 與Zend衛隊裝載機V3.3,版權所有(C)1998-2010,由Zend技術
新服務器 這個程序可以使用Zend腳本語言引擎: Zend引擎V2.3.0,版權所有(C)1998-2011 Zend技術與ionCube PHP Loader v4.0.9,版權所有(c)2002-2011,由ionCube有限公司,和 與Zend Guard加載程序v3.3,版權所有(c)1998-2010,由Zend技術 用了Suhosin v0.9.32.1,版權所有(C)2007-2010,通過SektionEins GmbH的
WHM 11.30.5
CENTOS 6.2 x86_64的
PHP 5.3.8
MYSQL 5.0。 92
Zend Framework const VERSION ='1.9.5';
問題描述簡介: 雖然php date()提供了正確的日期值,但zend框架在嘗試插入到mysql datetime字段之前將值更改爲僅僅一年。我相信有什麼會導致zend在插入之前更改日期值,但無法找到什麼。
public function addComment(Core_Model_Item_Abstract $resource, Core_Model_Item_Abstract $poster, $body)
{
$table = $this->getCommentTable();
$row = $table->createRow();
if(isset($row->resource_type))
{
$row->resource_type = $resource->getType();
}
$row->resource_id = $resource->getIdentity();
$row->poster_type = $poster->getType();
$row->poster_id = $poster->getIdentity();
$row->creation_date = date('Y-m-d H:i:s'); // this date() is throughout app
//if I put mail(send me date('Y-m-d H:i:s') I got correct time stamp)
$row->body = $body;
$row->save();
if(isset($resource->comment_count))
{
$resource->comment_count++;
$resource->save();
}
return $row;
}
MySQL表:
CREATE TABLE `comments` (
`comment_id` int(11) unsigned NOT NULL auto_increment,
`resource_id` int(11) unsigned NOT NULL,
`poster_type` varchar(24) character set latin1 collate latin1_general_ci NOT NULL,
`poster_id` int(11) unsigned NOT NULL,
`body` text collate utf8_unicode_ci NOT NULL,
`creation_date` datetime NOT NULL,
`like_count` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`comment_id`),
KEY `resource_type` (`resource_id`),
KEY `poster_type` (`poster_type`,`poster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
建議:比較_framework_(在整個名單沒有給出)的版本。觀察:_「如果我將mysql中的數據類型更改爲類似varchar的值,則值爲2012」_使我認爲該變量在查詢中引用錯誤.... Evil ... – Wrikken 2012-01-31 23:22:35
是您試圖格式化的這些存儲日期或你在尋找當前的時間戳嗎? – RockyFord 2012-02-01 04:10:56
@chris:那不是Zend ** Framework **版本。 'Zend Engine!= Zend Framework'。 – Wrikken 2012-02-01 11:48:53