2011-07-19 178 views
0

有没有一种方法来指定您自己的日期模式,除了包括(小,中,满)。这里的要点是它应该与i18n一起工作。我试了几件事情,但我无法得到它的工作...Yii自定义日期格式(模式)

Yii::app()->dateFormatter->format("l d/m/Y",$slide->date_start); 

我知道strftime但这里的问题是,不同的托管服务提供商使用不同的语言环境字符串...你有以定制它...

我正在寻找一个这样做的优雅方式。

我想l d/m/Y形式来显示日期...

更新: 没关系......我刚刚发现dateFormatter不使用标准的PHP日期格式...

回答

0

我认为你应该只测量Unix Time中的时间,因为时区&日期格式是一个表示层问题。 Unix时间永远是UTC &这是一个单一的数字,所以在代码中更容易传递。

到目前为止,“托管服务提供商使用不同的区域设置字符串”的问题,只要问他的时区&显示。远比猜测更不容易出错。

日期格式,看看谊的format()

希望这回答了你的问题

+0

正如我在我的更新中说的正确的格式是'EEEE,d/M/yyyy'这是比标准的php有点不同... – Mission

+0

是的,Yii似乎遵循Unicode方式;) – CuriousMind

0

这里有一个相关yii forum discussion

的警予论坛解决方案为我工作,以避免原始SQL NOW()声明,但仍用PHP date()time()产生数据库友好的日期字符串,否则返回整数。

在保护/配置/ main.php:

... 
'params'=>array(
    'mysqlDateTimeFormat' => 'Y-m-d H:i:s', # ':u' adds microsecond precision, 
... 

然后,无论你想提出一个日期 - 时间字符串转换成模型现场使用

$myModel->myDate = date(Yii::app()->params['mysqlDateTimeFormat']); 

很明显,你可以输入日期/时间格式直接输入日期(或时间)功能,如果你愿意的话。