gpt4 book ai didi

symfony - 如何在奏鸣曲管理过滤器 symfony2 中设置日期时间和日期格式

转载 作者:行者123 更新时间:2023-12-04 12:55:15 24 4
gpt4 key购买 nike

如何在 Sonata admin datagridfilters 中设置日期时间或日期过滤器?

我想对奏鸣曲管理过滤器执行以下操作,它适用于编辑表单

->add('createdAt', 'datetime', array('label' => 'Created at', 'disabled' => true, 
'input' => 'datetime',
'date_widget' => 'choice',
'time_widget' => 'choice',
'date_format' => 'MMM d, y',))

->add('deadline', 'date', array('label' => 'Deadline', 'disabled' => true,
'input' => 'datetime',
'widget' => 'choice',
'format' => 'MMM d, y'))

但它在过滤器中使用时不工作(或选项被忽略)
->add('createdAt', 'doctrine_orm_datetime', array('label' => 'Created At',
'input' => 'datetime',
'date_widget' => 'choice',
'time_widget' => 'choice',
'date_format' => 'MMM d, y'))

->add('deadline', 'doctrine_orm_date', array('label' => 'Deadline',
'input' => 'datetime',
'widget' => 'choice',
'format' => 'MMM d, y'))

我被迫这样做的原因是,在我的服务器(centos 5.2,php 5.3.20)上,月份字段被呈现为时间戳,但在我的开发机器上它呈现完美 - 关于这个问题有几个问题但没有真正的修复。这 2 个链接描述了我的问题主要问题 - 例如 symfony2 - date choice input renders timestamp instead of month name ,
http://iqwen.net/question/155068

所以我想知道三件事
  • 如何在奏鸣曲管理过滤器中设置日期时间/日期字段的格式选项
  • 有没有办法解决在 linux env
  • 上月份显示为时间戳的问题
  • 如何在 symfony2/sonata admin 中为日期/日期时间字段设置全局格式选项,以便我不必在每个字段旁边指定格式

  • 任何有关将不胜感激的帮助。

    最佳答案

    你可以这样做:

    ->add('createdAt', 'doctrine_orm_callback', 
    array(
    'label' => 'Created At',
    'callback' => function($queryBuilder, $alias, $field, $value) {
    if (!$value['value']) {
    return;
    }
    $time = strtotime($value['value']);
    $inputValue = date('Y-m-d', $time);
    $queryBuilder->andWhere("DATE($alias.createdAt) <= :CreatedAt");
    $queryBuilder->setParameter('CreatedAt', $inputValue);
    return true;
    },
    'field_type' => 'text'
    ), null, array('attr' => array('class' => 'datepicker')))

    DATE 函数是您使用 DQL 定义的强制转换。

    关于symfony - 如何在奏鸣曲管理过滤器 symfony2 中设置日期时间和日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14439933/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com