我正在构建一个 Web 应用程序,客户已要求任何必须输入数据的日期字段为英国格式 (DD/MM/YYYY)。目前,我有它,以便所有日期字段都必须以 YYYY/MM/DD 格式输入日期,因为这是数据库使用的。
如何让用户输入英国格式的日期,然后将其翻转以将其正确保存到数据库中?
我正在构建一个 Web 应用程序,客户已要求任何必须输入数据的日期字段为英国格式 (DD/MM/YYYY)。目前,我有它,以便所有日期字段都必须以 YYYY/MM/DD 格式输入日期,因为这是数据库使用的。
如何让用户输入英国格式的日期,然后将其翻转以将其正确保存到数据库中?
在beforeSave
回调中检查是否提供了日期字段,如果提供,请使用DateTime::createFromFormatDateTime
从您的显示格式创建一个对象。然后通过DateTime::format()将其更改为 sql 格式
if (isset($this->data[$this->alias]['date_field'])) {
$this->data[$this->alias]['date_field'] = DateTime::createFromFormat('d/m/Y', $this->data[$this->alias]['date_field'])->format('Y/m/d');
}