gpt4 book ai didi

arrays - 在 CakePHP 3.x 中将数组转换为日期格式的字符串

转载 作者:行者123 更新时间:2023-12-01 12:22:54 24 4
gpt4 key购买 nike

在我的表单中,当我提交它时,我会发送一封通知电子邮件,其中填充了表单输入。其中一个输入称为 date

我提交表单的时候,是按照数组的格式提交的,如下:

[
'year' => 'yyyy',
'month' => 'mm',
'day' => 'dd'
]

在我的 Controller 中,在将表单数据保存到数据库之前,我会向登录用户发送一封电子邮件。

这是我电子邮件的 ViewVars 的摘录:

$email->viewVars([
'date' => $date,
]);

因为日期是数组形式,所以邮件中出现如下错误:

Notice (8): Array to string conversion [APP/Template\Email\html\bookingrequest.ctp, line 15]

第 15 行是我对 viewVars 变量 $date 进行回显的行,如下所示:

<?= $date ?>

我正在寻找从数组到字符串的转换方法,并尝试了以下方法:

给定 $date = $data['session']['date'];

  • $date = date('Y-m-d',$date->getTimestamp()); - 不能用于数组
  • $date = $this->Bookings->Sessions->deconstruct('date', $date); - 发现它已被弃用
  • $date = $data['session']['date']->i18nFormat(); - 不能用于数组

最佳答案

您可以使用 CakePHP 内部用于将日期的数组表示形式转换为实际日期对象的相同功能,即利用相应数据库类型对象的 marshal() 方法。有了日期对象后,您就可以轻松地将其格式化为您喜欢的任何格式。

对于仅限日期的类型,您可以使用 \Cake\Database\Type\DateType,它应该通过 \Cake\Database\Type::build() 检索> 单例方法,以便与应用程序的其余部分使用相同的实例:

$dateObject = \Cake\Database\Type::build('date')->marshal($date);
// ... maybe add a check here to ensure that the conversion was successful
echo $dateObject->i18nFormat();

另见

关于arrays - 在 CakePHP 3.x 中将数组转换为日期格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com