我正面临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
,而不是进行大量的转换。