我在PHP应用程序中使用Twig,
我使用的PHP对象有一个名为“date”的属性,来自SQL Server。
看起来像是:“2014年3月2日12:00:00:000AM”
我尝试使用Twig将其转换为显示它,我尝试使用|日期(“Y-m-d”)没有成功:
在渲染模板期间抛出异常(“DateTime :: __ construct()[function.DateTime --- construct]:无法解析时间字符串(2013年6月20日12:00:00:000AM)第20行(:):第96行“......”中的意外字符“。”
有什么想法吗?
谢谢,
度过愉快的一天。
答案 0 :(得分:1)
date
过滤器可以处理\DateTime
个实例和可以传递给strtotime()
的字符串,显然你的不是。
你提到你正在使用具有date属性的对象,我建议你添加一个新函数:
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" }}
答案 1 :(得分:0)
您不需要使用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') }}
的文档