你如何解决以下错误:
Fatal error: Call to undefined method DateTime::createfromformat()
Run Code Online (Sandbox Code Playgroud)
错误发生在第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);
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
您运行的是哪个版本的PHP?根据PHP,createDateFormat版本> = 5.3.0.
- 编辑
看起来您的代码错误地使用了DateTime,因为createFromFormat返回一个对象而不是一个字符串,但您应该能够使用date()调用转置DateTime :: createFromFormat ()调用.
// 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']);
Run Code Online (Sandbox Code Playgroud)
在我看来,如果你正在处理时间戳,你可以做比较操作而不必转换为特定的格式.如果您正在处理的某个日期不是时间戳格式,则可以执行以下操作:
$timestamp = strtotime($yourFormattedDateTime);
// Now with everything in ints, you can do your conditional evals
Run Code Online (Sandbox Code Playgroud)