Typo3 6.2,正在处理我的个人分机。 我正在使用这个TCA的flexform:
'eventdate' => array(
'exclude' => 1,
'label' => 'Date of event :',
'config' => array(
'type' => 'input',
'size' => 30,
'eval' => 'datetime',
'checkbox' => '0',
'default' => time(),
),
),
...我的SQL字段是DATETIME,来自我的ext_tables.sql示例:
CREATE TABLE xxxxxxx
(
eventdate DATETIME NOT NULL,
);
问题:保存时,Typo3生成的字段格式为 hh:mm:ss dd:mm:yyyy ,但在我的SQL表格中,日期时间格式为 yyyy-mm-dd hh :mm:ss ,当用户尝试保存在后端时会出错:
1:这些字段在数据库中未正确更新:(eventdate) 可能与字段类型不匹配。
如何解决此问题?
答案 0 :(得分:3)
我认为int DATA TYPE
是在数据库中以tstamp格式存储DATE的最佳方式。
您需要定义eventdate DATA TYPE,如下所示
CREATE TABLE xxxxxxx
(
eventdate int(11) unsigned DEFAULT '0' NOT NULL,
);
答案 1 :(得分:1)
原始问题的TCA配置错过了dbType
属性,该属性指示TYPO3在保存DataHandler
中的数据期间使用不同的时间格式(默认格式为unix时间戳,其标准化为UTC)。
有关详细信息,请参阅https://docs.typo3.org/typo3cms/TCAReference/7.6/Reference/Columns/Input/#dbtype(文档适用于TYPO3 7.6,但也适用于TYPO3 6.0以后。)
<强> ext_tables.sql 强>
CREATE TABLE tx_myextension_xxxxxxx (
eventdate DATETIME default NULL
)
TCA字段配置
'eventdate' => array(
'exclude' => 1,
'label' => 'Date of event:',
'config' => array(
'type' => 'input',
'size' => 30,
'eval' => 'datetime',
'dbType' => 'datetime',
'default' => date('Y-m-d H:i:s'),
),
),
checkbox
,这对于input
date('Y-m-d H:i:s')
dbType
属性TYPO3 v8的旁注
请参阅https://docs.typo3.org/typo3cms/TCAReference/8.7/ColumnsConfig/Type/Input.html#rendertype-inputdatetime,其中显示了可在TYPO3 v8中使用的datetime
值的新渲染类型。