调用未定义的方法DateTime :: format但DateTime正常

时间:2019-01-15 11:43:49

标签: php datetime

在我们维护的旧版应用程序中,我突然遇到了一个非常奇怪的错误。

  

未捕获的错误:调用未定义的方法DateTime :: format()    PATH /helpers.php:54

我的相关代码是这样:

function custom_date_format($str, $format=false){
    if(!$format){
        $format ="j M Y";
    }
    $date = DateTime::createFromFormat('d-m-Y', $str);
    if($date){
        return $date->format($format); // lineno 54
    }
    return '';
}

服务器正在运行PHP 7,并且DateTime::createFromFormat似乎在工作,因此DateTime对象正在正常工作。

它在一夜之间停止工作(我发现这很奇怪,不确定我是否相信)。

有这么奇怪的错误的主意吗?

1 个答案:

答案 0 :(得分:0)

我们弄清楚了,答案根本不令人满意:

该错误无法以可靠的方式重复。那里是断断续续的。这已经引起了怀疑。

进行一些挖掘后,发现有更多的进程报告行为异常,并且看来内存问题是根本原因。迁移到“新”服务器后,所有问题都消失了。

那么显然DateTime对象没有以某种方式完全分配?格式函数指针被覆盖或其他内容。但是错误的内存是造成它的原因。