【问题标题】:PHP DateTime Diff error I cannot figure outPHP DateTime Diff 错误我无法弄清楚
【发布时间】:2013-09-11 05:25:29
【问题描述】:

运行 PHP 5.3.27 的实时服务器
在根 www 目录下,我正在运行旧站点。
root/mysite 下,我的新站点以零错误或警告运行。

我使用索引和 .httaccess 更改了 subdirectory /mysite 下的暂存 WordPress 站点,以使用 www.example.com 而不是暂存的 www.example.com/mysite 进行查看完美。

在计算日期范围的单独页面下,我收到一个致命错误,说明:

Fatal error: Call to undefined method DateTime::diff()...   

当我将站点切换回子目录并使用www.example.com/mysite/ 加载它时,没有致命错误,并且差异会正确计算日期范围。

我再次运行 php 5.3.27。我什至将其切换到 5.4 进行验证并收到 mktime() 错误,该错误已更正为 time(),但在 diff 上仍然出现致命错误

这是导致问题的代码位:

$date1 = new DateTime($mysqlExpireDate);
$date2 = new DateTime();
$interval = $date1->diff($date2);  // ERRORS??
$days = $interval->days;

任何想法都将不胜感激,我已经检查了我能想到的一切。

【问题讨论】:

  • 程序化的date_diff() 函数怎么样,例如$interval = date_diff($date1, $date2)?你也可以打印出(从同一个脚本)phpversion()
  • 确保 $date1 和 $date2 设置正确。 $mysqlExpireDate 是否为 DateTime 提供了正确的格式,并且实例化一个新的 DateTime 是否意味着它的时间戳是现在?
  • @Dwight:它不会解释 fatal 错误,无论对象的属性值如何 - 它应该提供声明的合约
  • @William Hagan:询问托管支持或您的系统管理员?
  • @WilliamHagan "Genius" 可能有点牵强。很高兴能提供帮助

标签: php


【解决方案1】:

您是否使用任何自动加载器? 可能是指任何名为 DateTime 的已实现类。

尝试将new DateTime 更改为new \DateTime 或将use \DateTime; 添加到脚本的开头。

您可以使用ReflectionClass::isUserDefined 进行检查

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2012-08-23
    • 1970-01-01
    相关资源
    最近更新 更多