我正面临着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():无法解析时间字符串(10-22-2013)at 位置0(1):意外的字符
我不明白这是什么问题。如果有人有建议请帮忙。谢谢。
答案 0 :(得分:0)
了解问题所在
通常通过理解错误消息来解决问题。在这种情况下,DateTime会抱怨它无法解析字符串10-22-2013
,这是正常的,因为DateTime
不接受此格式。如有疑问,请不要忘记查看manual。投入几个小时阅读这些东西可以在将来节省大量时间。
修复代码
例如,要回到您的错误,请尝试在$ from_time12内将日期格式化为Y-m-d
。
改进代码
此外,您在那里进行的转换相当令人困惑...... strtotime
不仅可以直接解析2013-11-20 5:10:00
之类的字符串,而且DateTime也可以理解它。因此,您应该可以将$this->event->from_date
直接传递给JHTML::_('calendar'...
)替换$from_time12
,而不是进行大量的转换。