Silverstepe 2.3.1只会将日期字段保存为1970-1-1


Silverstripe 2.3.1 will only save Date Field as 1970-1-1

当我从表单中保存带有日期字段的DataObject时,它会被保存为1970-1-1。

这是一个标准

public static $db = array(
  'MyDate' => 'Date'
);

然后

$form->saveInto($obj);
$obj->write();

尽管两个阶段(saveinto、write)似乎都将值更改为1970。我意识到这没什么可做的,所以我想我正在寻找如何调试它的建议

它正在使用电子商务和支付模块。

文档(http://api.silverstripe.org/2.4/class-Date.html)state"该字段当前支持新西兰日期格式(DD/MM/YYYY)或ISO 8601格式的日期(YYYY-MM-DD)"

如果日期被保存为epoch默认值,则很可能是以不正确的格式传入的。这可能是由于服务器和数据类型所需的日期格式之间存在区域设置差异。

在调用$form->saveInto()之前,您需要查看$obj->MyDate的格式并对其进行操作,以便以正确的格式保存日期。