【问题标题】:showing date variable's value correctly正确显示日期变量的值
【发布时间】:2018-09-23 08:13:58
【问题描述】:

我为用户定义了一些字段来帮助他/她输入日期,

这就是实体:

/**
 * @var \DateTime
 *
 * @ORM\Column(name="order_date", type="datetime", length=20,nullable=true)
 * 
 * @NotBlank()
 */
private $orderDate;

这就是形式:

->add('orderDate',null, ["label" => "courseorder.orderDate",'widget' => 'single_text', 'format' => 'yyyy-mm-dd'])

这是即将显示整个列表时的树枝代码:

<td>{{ courseOrder.orderDate|date('y/m/d') }}</td>

但是 输入此日期时 ->(2/7/97)
它将这个 ->(11/1/97) 保存到数据库并显示在 index.html.twig 中

【问题讨论】:

    标签: php symfony twig symfony-forms datetime-format


    【解决方案1】:

    我建议你阅读一下twig date formatenter link description here

    use Symfony\Component\Form\Extension\Core\Type\DateType;
    
    ->add('orderDate', DateType::class, [
            'label_attr' => ['class' => 'your-label-class'],
            'attr' => ['class' => 'form-control'],
            'translation_domain' => false,
            'widget' => 'single_text',
            'format' => 'yyyy-MM-dd'
     ])
    

    在视图中显示日期表单时:

    <td>{{ courseOrder.orderDate|date('Y/m/d') }}</td>
    

    【讨论】:

    • 说明你做了哪些改变。
    • 你明白了吗?
    【解决方案2】:

    不要将输入日期(表单)时的格式与显示日期(Twig)时的格式混淆。

    在您的表单中,您使用的是:

    ->add('orderDate', null, [
        "label" => "courseorder.orderDate",
        'widget' => 'single_text', 
        'format' => 'yyyy-mm-dd'
    ])
    

    因此系统希望您插入“2018-07-07”之类的值(当您使用“single_text”小部件时)。如果要在输入值时更改格式,则应将表单字段配置更改为所需的格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 2019-04-22
      • 2018-11-26
      • 2021-02-09
      • 1970-01-01
      • 2015-02-14
      相关资源
      最近更新 更多