Zend Framework - дата выпуска - PullRequest
       2

Zend Framework - дата выпуска

1 голос
/ 01 февраля 2012

Я недавно переместил сайт на новый хост.Настройка сервера очень похожа.Я использовал easy apache для дублирования конфигурации на новом сервере.

Однако у того же веб-приложения Zend Framework, которое отлично работало на предыдущем сервере, есть проблема с датой на новом сервере.

используя любой из них, дата, вставленная в столбец даты и времени 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

Если я изменю тип данных в mysql на like varcharзначение 2012

Если я добавлю строку прямо под вызовами $ row mail (), чтобы отправить мне по электронной почте значение date (), я получу правильную отметку времени.

Если я соединю значение date () с другим значением, которое хранится в другом столбце той же строки, я получу 1970-01-01 00: 00: 01

Я в тупике!

Любые предложения?

РЕДАКТИРОВАТЬ

Никаких изменений в коде не было сделано между переходом со старого на новый сервер.

СТАРЫЙ СЕРВЕР Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies с ionCube PHP Loader v4.0.9, Copyright (c) 2002-2011, ionCube Ltd., и с Zend Guard Loaderv3.3, Copyright (c) 1998-2010, Zend Technologies

НОВЫЙ СЕРВЕР В этой программе используется Zend Scripting Language Engine: Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies сPHP-загрузчик ionCube v4.0.9, Copyright (c) 2002-2011, от ionCube Ltd. и Zend Guard Loader v3.3, Copyright (c) 1998-2010, Zend Technologies с 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 Framework меняет значение на год до того, как попытатьсявставить в поле даты и времени mysql.Я полагаю, что что-то заставляет 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;

Ответы [ 2 ]

0 голосов
/ 16 мая 2012

Я исправил эту проблему, заменив функцию PHP date() на:

new Zend_Db_Expr('NOW()');
0 голосов
/ 01 февраля 2012

Это 32-битная машина?PHP strtotime не работает должным образом после 2025 года на 32-битных машинах.Просто мысль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...