首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从数据库提取时的CakePHP日期格式

从数据库提取时的CakePHP日期格式
EN

Stack Overflow用户
提问于 2016-08-03 03:33:42
回答 2查看 2K关注 0票数 0

在我的数据库中,出生日期以Y-m-d格式存储,例如。1965-09-04当cakePHP从数据库获取数据时,它会在内部将这些日期转换为d/m/y格式,因此1965-09-04变成了4/9/65。

现在,当我尝试将此日期转换为dd/mm/YY格式(1965/04/09/1965)时,结果为(04/09/2065)。

简而言之,我不希望cakephp在从数据库获取数据时转换日期格式。

EN

回答 2

Stack Overflow用户

发布于 2016-08-03 05:56:55

找到答案了。当数据从控制器传送到视图时,它实际上是格式化日期。使用bootstrap文件更改cakephp的默认日期格式。在文件中添加了以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
Cake\I18n\Date::setToStringFormat('YYYY-MM-dd');
Cake\I18n\FrozenDate::setToStringFormat('YYYY-MM-dd');

\Cake\Database\Type::build('date')
    ->useImmutable()
    ->useLocaleParser()
    ->setLocaleFormat('YYYY-MM-dd');

参考:Cakephp 3.2 change default date format

票数 1
EN

Stack Overflow用户

发布于 2016-08-03 14:50:33

简单地说,如果你想改变日期格式,那么根据cakephp规则,你可以像这样使用。首先更改数据库中的字段数据类型int,然后。在给定的模式中,使用这些函数。

代码语言:javascript
代码运行次数:0
运行
复制
public function beforeSave(){

$this->data['TableName']['FieldName']   =   time();
}

public function afterFind($results, $primary = false) {
 foreach ($results as $key => $val) {
        if (isset($val['TableName']['FieldName'])) {
            $results[$key]['TableName']['FieldName'] = $this->dateFormatAfterFind(
                $val['TableName']['FieldName']
            );
        }


    }
    return $results;
}

public function dateFormatAfterFind($dateString) {

    return date("Y-m-d H:m",$dateString);
}

我希望这对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38729040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档