无法解决此错误:调用未定义的方法DateTime :: createFromFormat()

时间:2013-03-11 14:25:37

标签: php

我正在尝试在php中转换日期格式。

以下代码会创建持久性错误

$myDate = "31/12/1980";

$myDateTime = DateTime::createFromFormat('d/m/Y', "$myDate"); 

$newDate = $myDateTime->format('d M Y');

echo $newDate;

包含createFromFormat()的行不断创建错误:“”调用未定义的方法“。 这与我的测试Apache服务器和实际服务器一起发生,两者都运行PHP 5.3 +

我是否需要包含或需要其他文件? 请帮助 - 我只是一个低级中级的PHP。

3 个答案:

答案 0 :(得分:4)

您应该收到此错误的两个可能原因是:

  1. 您实际上并未使用PHP 5.3+,因此该方法不存在。仔细检查您的代码运行的PHP版本。也许你的Web服务器配置中有一个oops。如果确实如此且您无法更改,请参阅PHP DateTime::createFromFormat in 5.2?了解替代方案。
  2. 您在命名空间中,需要像\DateTime::createFromFormat(...)一样调用它。

答案 1 :(得分:-2)

如果找不到方法,通常会发生这种情况,这意味着您没有包含包含此方法的文件。你可以发布DateTime :: createFromFormat的代码吗?

答案 2 :(得分:-2)

我找到了解决方案。 日期转换的正确语法是:

$myDate = "01-12-1980";
$tempDate = date_create("$myDate");
$newDate = date_format($tempDate, 'j M Y');
echo "$newDate";

产出产量:1980年12月1日 (j而不是d从日期编号中删除前导零)

请注意:

$newDate = date("d M Y", strtotime($myDate));

在此示例中不起作用,因为预期的输入格式为mm / dd / yyyy,使用任何其他格式将产生不正确的输出日期