yii2,将现有unix值转换为查询内的时间戳

yii2,将现有unix值转换为查询内的时间戳,yii2,Yii2,正在进行一个激动人心的项目,该项目使用Unix时间戳而不是时间戳作为列,因此我需要使这些值成为可读的时间戳,有没有办法在查询本身中实现这一点 $query = (new \yii\db\Query()) ->select(['a.created_at', 'a.updated_at', ]) ->from(['a' => 'product']) ->all(); //想

正在进行一个激动人心的项目,该项目使用Unix时间戳而不是时间戳作为列,因此我需要使这些值成为可读的时间戳,有没有办法在查询本身中实现这一点

     $query = (new \yii\db\Query())
     ->select(['a.created_at',
               'a.updated_at',
                ])
     ->from(['a' => 'product'])
     ->all();
//想法

'created_at' => date('Y-m-d H:i:s')

这应该对你有用

$query = (new \yii\db\Query())
     ->select([new \yii\db\Expression('from_unixtime(a.updated_at) as updatedAt,
                                       from_unixtime(a.created_at) as createdAt')])
     ->from(['a' => 'product'])
     ->all();

或者您可以使用来自UNIX的
(UNIX\u TIMESTAMP(),“%Y%D%M%h:%i:%s%x”)
创建所需格式,如
2015年11月13日10:08:01 2015
。有关更多详细信息,请参阅。

这应该适合您

$query = (new \yii\db\Query())
     ->select([new \yii\db\Expression('from_unixtime(a.updated_at) as updatedAt,
                                       from_unixtime(a.created_at) as createdAt')])
     ->from(['a' => 'product'])
     ->all();

或者您可以使用来自UNIX的
(UNIX\u TIMESTAMP(),“%Y%D%M%h:%i:%s%x”)
创建所需格式,如
2015年11月13日10:08:01 2015
。有关更多详细信息,请参阅。

好的,让我先在我的机器上尝试一下,然后再重新发布@user759235您能显示字段的模式详细信息吗?您如何将unix时间戳保存到表中@USER759235因为这个项目不是我自己创建的,我不能说,但是我知道这个列是一个int(11),当我使用yii2格式化程序时,它将返回正确的日期/时间。好的,你能复制保存的
时间戳
并用这个查询中的时间戳替换它吗
从\u UNIXTIME(1255033470)中选择并尝试运行它它是否正确显示日期@user759235i刚刚验证了它,如果我使用
$model->created_at=new\yii\db\Expression('unix_timestamp()')保存unix时间戳,它就会正常工作
然后使用
从_unixtime()以可读形式检索它。
使用上述查询正确打印日期,这很奇怪您有最新的yii版本吗@USER759235好的,让我先在我的机器上试用一下,然后再重新发布@USER759235您能显示字段的模式详细信息吗?您如何将unix时间戳保存到电子表格中@USER759235因为这个项目不是我自己创建的,我不能说,但是我知道这个列是一个int(11),当我使用yii2格式化程序时,它将返回正确的日期/时间。好的,你能复制保存的
时间戳
并用这个查询中的时间戳替换它吗
从\u UNIXTIME(1255033470)中选择并尝试运行它它是否正确显示日期@user759235i刚刚验证了它,如果我使用
$model->created_at=new\yii\db\Expression('unix_timestamp()')保存unix时间戳,它就会正常工作
然后使用
从_unixtime()以可读形式检索它。
使用上述查询正确打印日期,这很奇怪您有最新的yii版本吗@用户759235