JHTML压延机在joomla 2.5中更改格式时显示错误


JHTML calender show error when change format in joomla 2.5

我正面临JHTMl压延方法的问题。这是我要做的代码:

edit.php

$this->event->from_date="2013-11-20 5:10:00";
$from_date = explode(" ", $this->event->from_date);
$from_time12 = date("m-d-Y", strtotime($from_date[0]));
echo JHTML::_('calendar', $from_time12, 'from_date', 'from_date', '%m-%d-%Y', array('class' => 'required', 'size' => '15', 'onchange' => 'getfromdate(this.value)'));

它对新项目运行良好,但当我编辑现有项目时,它显示错误:

DateTime::__construct():无法在分析时间字符串(2013年10月22日)位置0(1):意外字符

我不明白出了什么问题。如果有人有建议,请帮忙。谢谢

了解问题所在

一般来说,通过理解错误消息可以解决问题。在这种情况下,DateTime抱怨它无法解析字符串10-22-2013,这很正常,因为DateTime不接受这种格式。如果有疑问,别忘了查阅手册。花几个小时阅读这些东西可以为你将来节省很多时间。

修复代码

例如,要返回错误,请尝试在$from_time12内将日期格式化为Y-m-d

改进代码

此外,你在那里进行的转换也相当令人困惑。。。strtotime不仅可以像2013-11-20 5:10:00那样直接解析字符串,而且DateTime也可以理解它。因此,您应该能够将$this->event->from_date直接传递给JHTML::_('calendar'...)来代替$from_time12,而不是进行大量的转换。