簡體   English   中英

如何轉換我的日期 object 以在 Symfony formbuilder 中使用它?

[英]How can I convert my date object to use it in Symfony formbuilder?

我想在我的表單生成器中使用日期。

當我轉儲變量$date時,我得到 output:

DateTime @1536139353 {#2479 ▼
  date: 2018-09-05 11:22:33.0 Europe/Paris (+02:00)
}

當我現在嘗試在我的表單構建器中使用它時,如下所示:

$options['format'] = 'dd.MM.yyyy';
$options['data'] = new \DateTime($date);

然后我收到一條錯誤消息:

DateTime::__construct() expects parameter 1 to be string, object given

你可以只使用 strtotime

echo date('Ymd H:i:s', strtotime($your_date_string));

或者您可以使用 DateTime::createFromFormat() static 方法。

我希望對你有幫助

解釋

DateTime是 object,您需要在此處從 object 獲取格式化字符串。
幸運的是, DateTime object 提供了format()方法,該方法用於將日期/時間作為所需格式的字符串返回。
在這個例子dmY ,這將是 output 16.04.2020

(new \DateTime($date))->format('d.m.Y');

您的用例

看來您正在使用已經是DateTime object 的$date來創建新的DateTime object。 這不起作用,也沒有必要。

由於 $date 已經是 \DateTime 的一個實例,您可以直接使用

$options['format'] = 'dd.MM.yyyy';
$options['data'] = $date->format('d.m.Y');

來源

格式

要選擇所需的格式,請查看此處的文檔
https://www.php.net/manual/de/function.date.php

日期時間 Object

您必須在構建時傳遞一個可解釋的日期字符串。 https://www.php.net/manual/de/class.datetime.php

$date已經是一個日期時間:

DateTime @1536139353 {#2479 ▼
  date: 2018-09-05 11:22:33.0 Europe/Paris (+02:00)
}

所以沒有必要像這樣轉換它new \DateTime($date);

解決方案是:

$options['format'] = 'dd.MM.yyyy';
$options['data'] = $date;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM