"在PHP中转换日期时,在非对象上调用成员函数格式()"

Bla*_*ama 7 php date

我无法摆脱这个错误信息:

在非对象上调用成员函数format()

所以,我继续谷歌搜索并得到一些像StackOverflow这样的好的来源问题.

我试着做类似的事,但我失败了.这是我的代码:

$temp = new DateTime();
/*ERROR HERE*/ $data_umat['tanggal_lahir'] = $data_umat['tanggal_lahir']->format('Y-m-d');
$data_umat['tanggal_lahir'] = $temp;
Run Code Online (Sandbox Code Playgroud)

所以,我做了试验和错误,我发现我是否这样做:

$data_umat['tanggal_lahir'] = date("Y-m-d H:i:s");
Run Code Online (Sandbox Code Playgroud)

日期将成功转换,但它总是返回今天的日期(我不想要).

我想将日期转换,这样10/22/20132013-10-22.

Gla*_*vić 9

您正在format()非对象上调用方法.试试这个:

$data_umat['tanggal_lahir'] = new DateTime('10/22/2013');
$data_umat['tanggal_lahir'] = $data_umat['tanggal_lahir']->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)

或单行:

$data_umat['tanggal_lahir'] = date_create('10/22/2013')->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)

  • @bansi:这个单行对我来说很有趣,因为第一部分(`date_create`)是程序风格,第二部分(` - > format()`)是面向对象的风格.面向对象风格单行的完美示例是`(new DateTime('10/22/2013')) - > format('Ym-d')`,但那是PHP> = 5.4.0,因为回答的例子是PHP> = 5.2.0. (2认同)