首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >codeigniter仅返回mysql日期时间字段的年份

codeigniter仅返回mysql日期时间字段的年份
EN

Stack Overflow用户
提问于 2013-11-08 05:02:00
回答 2查看 551关注 0票数 0

我正在尝试做一个简单的SELECT的一些mysql数据,使用codeigniter。

代码语言:javascript
运行
复制
//setup query
$this->db->select('personId, birthday')
    ->from('person')
    ->where('personId', $personId)
    ->limit(1);

    //execute query
    $query = $this->db->get();

    //fetch result
    $result = $query->row_array();

        //found person
        if(!empty($result)){
            echo $result['birthday'];
        }
    }
}

birthday字段在mySQL中作为DATE类型。DB中和phpMyAdmin中看到的值是'1980-05-21',但上面代码中回显的值只是'1980',就是年份。

我尝试将mysql类型切换为DATETIME,但没有任何效果。

我猜测这与Codeigniter有关,甚至可能与结果中的'-‘字符有关。这个问题快把我逼疯了!有没有人遇到过这个问题,并且知道如何解决?

EN

回答 2

Stack Overflow用户

发布于 2013-11-08 05:27:41

我复制了你的代码,所有的工作都很好,可能是你的php.ini中的一些东西。设置date.timezone并检查区域设置,如果您有intl扩展名。出于测试目的,在echo $result之后尝试die() ...也许是它之后发生的事情。我使用CodeIgniter 2.1.3版本测试您的代码。

票数 0
EN

Stack Overflow用户

发布于 2013-11-08 05:35:02

这不是对你问题的直接回答,因为我不确定你的date的问题,但似乎你有一个选项来改变字段,因为你已经改变了它一次(正如你的问题中提到的)所以,在我的观点中,使用timestamp比使用date/datetime更好,这里有一个关于它的nice answer,所以,我认为如果你把类型改为timestamp,它可能会解决问题,并且很容易处理timestamp上的任何类型的操作,而且,CodeIgniter有一个Date Helper可以轻松地处理它的日期,但这只是一个选项。您也可以使用PHP的内置函数。

这只是一种观点,我更喜欢timestamp而不是date/datetime,至少,我不需要在yyyy-mm-dddd-mm-yyyy之间交换顺序,相反,我可以使用timestamp中的date('d-m-Y', $timestamp);创建它。

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

https://stackoverflow.com/questions/19846633

复制
相关文章

相似问题

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