我在PHP应用程序中使用Twig,
我使用的PHP对象有一个名为"date"的属性,从SQL Server获得。
它看起来像:"Mar 2 2014 12:00:00:000AM"
我尝试使用Twig转换它来显示它,我尝试使用| date("Y-m-d")但没有成功:
在呈现模板("DateTime::__construct() [function. DateTime::__construct()])时抛出异常。DateTime——construct]: Failed to parse time string (Jun 20 2013 12:00:00 . 000 am) at position 20 (:): Unexpected character") in "…" in line 96.
有什么想法吗?
谢谢,
祝你今天愉快。
date
过滤器可以在'DateTime
实例和可以传递给strtotime()
的字符串上工作,显然你的不是。
你提到你正在使用一个具有日期属性的对象,我建议给它添加一个新函数:
public function getDateAsObject()
{
// should be able to parse this format: Mar 2 2014 12:00:00:000AM
return 'DateTime::createFromFormat("M j Y h:i:s:uA", $this->date);
}
您可能需要根据您的约定调整格式和函数名称。
你可以在你的模板中使用它:
{{ your_object.dateAsObject|date("Y-m-d" }}
您不需要使用date('Y-m-d')
,根据错误消息,您的对象的日期属性是DateTime类型,因此使用以下内容:
// I assume 'object' is your object which has 'date' as the attribute
<span>Date: </span>{{ object->date->format('Y-m-d') }}
检查文档中的DateTime::Format