未知日期格式Zend日期



我必须比较由zend对象Zend_Date制作的两个日期。一个存储在配置文件中作为字符串。为了比较我必须从配置文件中读取的两个日期,然后将其与Zend_Date::now()进行比较。代码如下:

 $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

我认为日期格式是正确的,我想念什么?谁能帮忙?

zend_date构造函数的第二个参数是" part"字符串,但是您通过数组。因此,这一行应该是:

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

此外,您的代码中还有另一个错误 - $ date_old :: seconds不正确。尝试:

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

您的日期格式字符串不合适。

您希望它是d/M/Y H.i.s的每个文档:http://us2.php.net/manual/manual/en/function.date.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');

根据文档,zend_date构造函数的第二个参数必须是 string ,您是在数组中传递的。尝试

$date_old = new Zend_Date($config->authorization->date, 'dd/mmm/yyyy HH.mm.ss')
                                                        ^^^^^---not an array

最新更新