如何在TYPO3中存储datetime属性?

如何在TYPO3中存储datetime属性?,datetime,typo3-7.6.x,Datetime,Typo3 7.6.x,我创建了一个简单的表单,它处理一个对象person,这个对象拥有属性birthDate,类型为datetime 现在我想创建一个人并存储此属性,但如果我尝试提交表单,则会出现以下错误: 无法识别日期“%s”(对于格式“%s”) 我读过一些线程,其中很多线程建议使用初始化操作来处理这个问题,但这对我不起作用 人: class Person extends AbstractEntity { ... /** * Stores the birth date of a pers

我创建了一个简单的表单,它处理一个对象person,这个对象拥有属性birthDate,类型为datetime

现在我想创建一个人并存储此属性,但如果我尝试提交表单,则会出现以下错误:

无法识别日期“%s”(对于格式“%s”)

我读过一些线程,其中很多线程建议使用初始化操作来处理这个问题,但这对我不起作用

人:

class Person extends AbstractEntity
{
    ...

    /**
     * Stores the birth date of a person
     * 
     * @var \DateTime
     * @validate NotEmpty, DateTime
     *
     */
    protected $birthDate = null;

    ...
}
流体:

<f:form action="send" method="post" enctype="multipart/form-data" name="person" object="{person}">
...
<fieldset>
    <f:render partial="FormErrors" arguments="{field: 'person.birthDate'}" />
    <label class="required">Birthdate</label>
    <f:form.textfield
        type="date"
        placeholder="dd.mm.yyyy"
        property="birthDate"
    />
</fieldset>
...
</f:form>
<f:form.textfield id="datepicker" placeholder="dd.mm.yyyy" property="geburtsdatum" />
发送操作如下所示:

public function sendAction(\Fox\Example\Domain\Model\Person $person)
{
    $this->personRepository->add($person);
    ...
}

因此没有什么特别之处,但我的自定义日期时间格式“d.m.Y”似乎不起作用,并且属性为string类型,有什么建议吗?

我的一个工作示例可能会对您有所帮助

TCA:

'geburtsdatum' => array(
    'exclude' => 1,
    'label' => 'Geburtsdatum',
    'config' => array(
        'dbType' => 'date',
        'type' => 'input',
        'size' => 7,
        'eval' => 'date',
        'checkbox' => 0,
        'default' => '0000-00-00'
    ),
),
SQL:

GEBURTSDATA日期默认值“0000-00-00”

型号:

class Inquiry extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
{
    ...

    /**
     * geburtsdatum
     *
     * @var string
     */
    protected $geburtsdatum = NULL;

    ...
    /**
     * Returns the geburtsdatum
     *
     * @return string $geburtsdatum
     */
    public function getGeburtsdatum()
    {
        return $this->geburtsdatum;
    }

    /**
     * Sets the geburtsdatum
     *
     * @param string $geburtsdatum
     * @return void
     */
    public function setGeburtsdatum($geburtsdatum)
    {
        $this->geburtsdatum = $geburtsdatum;
    }
}
流体:

<f:form action="send" method="post" enctype="multipart/form-data" name="person" object="{person}">
...
<fieldset>
    <f:render partial="FormErrors" arguments="{field: 'person.birthDate'}" />
    <label class="required">Birthdate</label>
    <f:form.textfield
        type="date"
        placeholder="dd.mm.yyyy"
        property="birthDate"
    />
</fieldset>
...
</f:form>
<f:form.textfield id="datepicker" placeholder="dd.mm.yyyy" property="geburtsdatum" />

谢谢你的回复,我现在也用了类似的东西。字符串属性处理表单字段,在验证之后,我存储该字符串并将其转换为第二个datetime属性。