如何解决的错误
Fatal error: Call to undefined method DateTime::createfromformat()
错误发生在第35行。这是我的代码从第31行到第45行读取的内容
// check database for necessary updates
$update = mysql_query("SELECT * FROM rent WHERE colour='#3C0'");
while($row_update = mysql_fetch_array( $update )) {
$datetime_lower = DateTime::createFromFormat('d/m/Y', $min);
$datetime_upper = DateTime::createFromFormat('d/m/Y', $max);
$datetime_compare = DateTime::createFromFormat('d/m/Y g:i a', $row_update['pDate']);
if ($datetime_lower < $datetime_compare && $datetime_upper > $datetime_compare) {
// date is between do nothing
} else {
// date is not between so update
$update_result = mysql_query("UPDATE rent SET colour='#F0F0F0' WHERE id=" . $row_update['id'] . " && colour='#3C0'");
mysql_close($update_result);
}
}
我该如何解决此问题?
DateTime::createFromFormat()是在php5.3中引入的。很可能你有一个更老的。因此,安装php>=5.3,您就可以工作了。
您正在运行哪个版本的PHP?根据PHP,createDateFormat
的版本>=5.3.0。
--编辑
看起来您的代码使用DateTime不正确,因为createFromFormat返回的是一个对象,而不是字符串,但您应该能够将DateTime::createFromFormat()调用与date()调用互换。
// PHP >= 5.3.0
$datetime_lower = DateTime::createFromFormat('d/m/Y', $min);
$datetime_upper = DateTime::createFromFormat('d/m/Y', $max);
$datetime_compare = DateTime::createFromFormat('d/m/Y g:i a', $row_update['pDate']);
// PHP < 5.3.0
$datetime_lower = date('d/m/Y', $min);
$datetime_upper = date('d/m/Y', $max);
$datetime_compare = date('d/m/Y g:i a', $row_update['pDate']);
不过,在我看来,如果你正在处理时间戳,你可以在不必转换为特定格式的情况下进行比较操作。如果您正在处理的某个日期不是时间戳格式,您可以执行以下操作:
$timestamp = strtotime($yourFormattedDateTime);
// Now with everything in ints, you can do your conditional evals