OOP 菜鸟在这里。我想利用 CakePHP 2.3 的短日期方法,以便在适当的时候获得“今天”或“昨天”,同时在输出不是“今天”或“昨天”时更改日期的格式。
示例视图:echo $this->Time->niceShort($user['User']['last_invited_on'];
.
我在lib/Cake/Utility/CakeTime.php
(CakeTimeHelper
使用该CakeTime
实用程序)中找到了以下内容:
class CakeTime {
/**
* The format to use when formatting a time using `CakeTime::nice()`
*
* The format should use the locale strings as defined in the PHP docs under
* `strftime` (http://php.net/manual/en/function.strftime.php)
*
* @var string
* @see CakeTime::format()
*/
public static $niceFormat = '%a, %b %eS %Y, %H:%M';
/**
* The format to use when formatting a time using `CakeTime::timeAgoInWords()`
* and the difference is more than `CakeTime::$wordEnd`
*
* @var string
* @see CakeTime::timeAgoInWords()
*/
public static $wordFormat = 'j/n/y';
/**
* The format to use when formatting a time using `CakeTime::niceShort()`
* and the difference is between 3 and 7 days
*
* @var string
* @see CakeTime::niceShort()
*/
public static $niceShortFormat = '%B %d, %H:%M';
我可以以某种方式覆盖此类的公共属性,以便Time->niceShort
在视图中使用时更改输出的日期格式吗?(这是“猴子补丁”吗?)如果是这样,什么是好的/干净的方法?
或者我应该编写一个新的扩展类,CakeTime
这是否意味着必须更改$this->Time
为$this->MyNewSpiffingCustomisedTime
in 视图(我不想这样做,因为其他习惯使用 Cake's 的Time
人正在从事该项目)?我想知道这是否只是为了更改属性而过大。