php - 在 Yii 2 中格式化日期时间值

标签 php yii2

数据库中保存的日期时间值为“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 文档中提到的,支持以下类型的值:

如果您有自定义日期字符串,则可以使用 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/

相关文章:

fonts - 在yii2中的哪里放字体?

Yii2 下拉列表中的多个选定值

php - Yii Framework 未知属性异常

yii2 - 如何从 Yii2 basic 禁用 Bootstrap ?

php - Laravel 5.6 缓存存储数千个值,全部称为 :timer

php - POST 方法的 Laravel + Vue + Axios 问题

php - 在非对象 app\Controller\CarriesController.php 第 5 行调用成员函数 create()

php - 使用 Yii2 DbMessageSource 获取需要翻译的所有文本的列表

PHP:PDO foreach 不工作

java - 如何在gwt中使用php