최근에 웹 사이트를 새 호스트로 이동했습니다. 서버 설정은 매우 유사합니다. 새 서버의 구성을 복제하기 위해 쉬운 아파치를 사용했습니다.젠드 프레임 워크 - 날짜 문제
그러나 이전 서버에서 정상적으로 실행 된 동일한 zend 프레임 워크 웹 응용 프로그램은 새 서버에서이 날짜 문제가 있습니다.
이들 중 하나를 사용하든간에, mysql datetime 열에 삽입 된 날짜가 잘못되었습니다. 내가 바로 $ 행 호출 아래 라인을 추가하면 내가 VARCHAR를 좋아하는 MySQL의에서 데이터 유형을 변경하면 날짜 열의
$row->creation_date = date('Y-m-d H:i:s');
$row->creation_date = date('Y-m-d H:i:s', TRUE);
값은 0000-00-00 00:00:00
이며, 값이 2012
입니다, mail(), date()의 값을 이메일로 보내려면 올바른 타임 스탬프를 얻는다. 나는 다른 열 같은 행에 저장되어 다른 값으로 날짜() 값을 CONCAT 경우
, 나는 내가 난처한 상황에 빠진거야 0시 0분 1초
1970-01-01를 얻을!
제안 사항? 코드에 대한 변경이 새 서버로 기존의 이동 사이에 없었다
편집 할 수 있습니다.
이전 서버 젠드 엔진 v2.3.0, 저작권 (C) 1998에서 2011 사이 젠드 테크놀로지 이온 큐브 (주)에 의해 이온 큐브 PHP 로더 v4.0.9, 저작권 (C) 2002-2011,와 및 와 젠드 가드 젠드 기술에 의해 로더 V3.3, 저작권 (C) 1,998에서 2,010 사이,
새 서버 이 프로그램은 젠드 스크립트 언어 엔진을 사용한다 : 젠드 엔진 v2.3.0, 저작권 (C) 1,998에서 2,011 사이 젠드 기술을 ionCube PHP 로더 v4.0.9를 사용하는 , ionCube Ltd.의 Copyright (c) 2002-2011 및 Zend Guard 로더 v3.3을 사용하는 , Copyright (c) 1998-2010, Zend TechnologiesSektionEins GmbH의
WHM 11.30.5
에 CentOS 6.2 x86_64에
PHP 5.3.8
5.0 의해 수호신의 v0.9.32.1, 저작권 (c) 2007년부터 2010년까지와 6,. 92
젠드 프레임 워크 const VERSION = '1.9.5';
짧은 설명 : php date()가 올바른 날짜 값을 제공하지만 zend 프레임 워크는 mysql datetime 필드에 삽입하기 전에 값을 단지 1 년으로 변경합니다. 뭔가가 삽입하기 전에 날짜 값을 변경하려면 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_의 버전을 비교 – Wrikken
은 저장하려는 날짜이거나 현재 타임 스탬프를 찾고 계십니까? – RockyFord
@chris : Zend ** 프레임 워크 ** 버전이 아닙니다. 'Zend Engine! = Zend Framework'. – Wrikken