数据库中保存的日期时间值为“2014-06-30 02:52:51.210201
”。
这也是 Yii 显示的值。
在任何地方将其显示为“30-06-2014 02:52:51
”的最佳方法是什么?
在 Yii's wiki 中找到此内容但不知道如何使用它:
You can configure yii\i18n\formatter to control your global date formats for display for your locale. You can set something like this in your config file that you can access across
'formatter' => [ 'class' => 'yii\i18n\Formatter', 'dateFormat' => 'd-M-Y', 'datetimeFormat' => 'd-M-Y H:i:s', 'timeFormat' => 'H:i:s', ]`
Then you can display your date times anywhere using the formatter specified formats:
echo \Yii::t('app', 'Today is {0, date}', $yourTimeStampAttr);
更新
我为模型创建一个自定义属性来检索时间
public function getFormattedCreateTime()
{
return DateTime::createFromFormat('Y-m-d H:i:s.u', $this->create_time)->format('d-m-Y H:i:s');
}
另一个问题是,如何在 Yii 2 的 GridView 中使用此属性进行搜索?谢谢
已解决
可以通过继承搜索功能添加自定义搜索属性
最佳答案
\Yii::$app->formatter->asDatetime("2014-06-30 02:52:51.210201", "php:d-m-Y H:i:s");
第二个参数允许您设置 ICU manual 中指定的自定义格式。 。
或者你可以设置 php date()格式带有 php:
前缀。
正如 Yii2 文档中提到的,支持以下类型的值:
- 表示 UNIX 时间戳的整数
- 一个字符串,可以是 parsed to create a DateTime object .
- PHP DateTime对象
如果您有自定义日期字符串,则可以使用 DateTime::createFromFormat()功能:
$dateTime = \DateTime::createFromFormat("d/m/Y H:i:s", '31/01/2015');
\Yii::$app->formatter->asDatetime($dateTime, "php:d-m-Y H:i:s");
关于php - 在 Yii 2 中格式化日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24479847/