4

我正在尝试在 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 的低中级。

4

3 回答 3

4

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

  1. 您实际上并没有使用 PHP 5.3+,因此该方法不存在。仔细检查您的代码运行的 PHP 版本。也许您的 Web 服务器配置有问题。如果确实如此并且您无法更改它,请参阅5.2 中的PHP ?DateTime::createFromFormat为替代品。
  2. 你在一个命名空间中,需要像\DateTime::createFromFormat(...).
于 2013-04-18T04:34:17.610 回答
-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,使用任何其他格式将产生不正确的输出日期

于 2013-03-12T21:56:18.633 回答
-2

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

于 2013-03-11T14:32:22.047 回答