首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >原则2.1 - DateTime问题

原则2.1 - DateTime问题
EN

Stack Overflow用户
提问于 2012-02-08 00:01:21
回答 1查看 540关注 0票数 1

我在数据库表中有date类型的premiere_poland列。

代码语言:javascript
运行
复制
/** @Column(type="date", nullable=TRUE) */
    protected $premiere_poland;

我的问题是,我想要存储日期,如2012-01-012013-00-002013-01-00等,我想要那种类型的日期,但Doctrine每次在DateTime实例中返回该列数据时,真实的表单都会更改(例如:2013-01-00 = 31.12.2012)。

如何让Doctrine将该值作为字符串返回,而不是DateTime类实例。

我的问题是:

代码语言:javascript
运行
复制
    $q = "SELECT
            g,
            p.name AS platform_name, p.name_short AS platform_name_short, p.id AS platform_id,
            s.premiere_poland, s.premiere_world
          FROM Game g
            JOIN g.genres ge
            JOIN g.platform p
            LEFT JOIN g.specification s
          WHERE g.id = :id";
    $results = $db->createQuery($q)->setParameter('id', $_GET['id'])->getResult();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-08 01:11:30

@Crozin因为我需要存储游戏日期首映式的列,并且首映式可以不完全知道(例如。2013年3月或仅一年)。

我建议创建两个列,一个用于日期(类型为DateTime/DATE),另一个用于指示在显示首映日期(类型为SET或位掩码)时应考虑日期的哪些部分(日、月、年)。

显示首映日期的函数可能如下所示:

代码语言:javascript
运行
复制
// "parts" is a name of the last column - it should be renamed into something
// more adequate. Names of constants also aren't well adequate

function getFormattedPremiereDate() {
    if ($this->abc & Game::SHOW_YEAR_ONLY) {
        return $this->premierePoland->format('%y');
    }

    if ($this->abc & Game::SHOW_YEAR_AND_MONTH_ONLY) {
        return $this->premierePoland->format('%m %y');
    }

    if ($this->abc & Game::SHOW_DATE) {
        return $this->premierePoland->format('%d %m %y');
    }
}

当然,这个函数不应该放在entity对象中--它太复杂了(特别是当我们考虑到i18n和i10l的时候),而且与实体“无关”。

这项技术可以让你显示以下日期:

  • 2012年6月12日(12-06-2012Game::SHOW_DATE),
  • 2015 (01-01-2015Game::SHOW_YEAR),

H115 2012年3月(d16,d17),H218H119 2020年夏季(d20,d21),2010年冬季(d22,Game::SHOW_SEASON)

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

https://stackoverflow.com/questions/9179522

复制
相关文章

相似问题

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