Silverstripe 2.3.1仅将日期字段保存为1970-1-1

时间:2013-07-19 03:38:46

标签: php silverstripe

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

这是一个标准

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

然后

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

虽然两个阶段(saveinto,write)似乎都将值改为1970年。 我意识到这不是很多,所以我想我正在考虑如何调试它。

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

1 个答案:

答案 0 :(得分:0)

文档(http://api.silverstripe.org/2.4/class-Date.html)声明“该字段目前支持新西兰日期格式(DD / MM / YYYY),或ISO 8601格式化日期(YYYY-MM-DD)”

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

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