2014-01-30 5 views
0

Мне нужно сравнить две даты, сделанные объектом zend Zend_Date. Один хранится в файле конфигурации в виде строки. Чтобы сравнить две даты, я должен прочитать из файла конфигурации дату уже там, а затем сравнить ее с Zend_Date::now(). Код состоит в следующем:Неизвестный формат даты Zend Дата

$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/oauth2.ini', 'authorization'); 
$date = Zend_Date::now(); 
$date_old =new Zend_Date($config->authorization->date, array('date_format'=>'dd/mmm/yyyy HH.mm.ss')); 
$date_old->add($config->authorization->timelapse, $date_old::SECONDS); 
if ($date->isLater($date_old)) { 
    //Do what you have to do 
} 

сообщение об ошибке я получаю:

Message: Unknown dateformat type 'array'. Format 'dd/MMM/yyyy HH.mm.ss' must be a valid ISO or PHP date format string. 

Строка Я даю на Zend_Date объекта:

30/gen/2014 13.27.22 

Я думал формат даты был прав, что мне не хватает? Может ли кто-нибудь помочь?

ответ

1

Второй параметр конструктора Zend_Date - это «часть», но вы передаете массив. Так эта линия должна быть:

$date_old = new Zend_Date($config->authorization->date, 'd/M/Y H.i.s')); 

Кроме того, есть еще одна ошибка в коде - $ date_old :: СЕКУНД неверен. Попробуйте:

$date_old->add($config->authorization->timelapse, Zend_Date::SECOND); 
1

Строка формата даты неверна.

Вы хотите быть d/M/Y H.i.s в документации здесь: http://us2.php.net/manual/en/function.date.php

d - is the two digit day 
M - the three letter abbreviation of the month 
Y - the four digit year 
H - 24-hour clock with leading zeros 
i - minutes with leading zeros 
s - seconds 

Вам не нужно повторять символы, чтобы указать номер.

так эта линия:

$date_old =new Zend_Date($config->authorization->date, array('date_format'=>'dd/mmm/yyyy H.mm.ss')); 

становится

$date_old =new Zend_Date($config->authorization->date, 'd/M/Y H.i.s'); 
1

Как per the docs, второй аргумент для конструктора Zend_Date должен быть STRING, вы передаете в массив. Попробуйте

$date_old = new Zend_Date($config->authorization->date, 'dd/mmm/yyyy HH.mm.ss') 
                 ^^^^^---not an array 
Смежные вопросы