getTimestamp() - 调用成员函数时发生致命错误

时间:2017-12-22 11:55:23

标签: php datetime

我想将以下字符串转换为datetime:

<?php
$t = '2017-12-22T11:46:21.647+00:00';

$date = date_create_from_format('d/M/Y:H:i:s', $t);
print_r($date->getTimestamp());

但是,我收到以下错误:

Fatal error: Call to a member function getTimestamp() on a non-object in /home/ubuntu/workspace/src/t02-convertDateTime.php on line 5

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

执行此代码时:

<?php
$t = '2017-12-22T11:46:21.647+00:00';

$date = date_create_from_format('d/M/Y:H:i:s', $t);
var_dump($date);
print_r($date->getTimestamp());

您将获得以下输出:

bool(false) 
FATAL ERROR Uncaught Error: Call to a member function getTimestamp() on boolean in /home4/phptest/public_html/code.php70(5) : eval()'d code:6 Stack trace: #0 /home4/phptest/public_html/code.php70(5): eval() #1 {main} thrown on line number 6

看起来它是无效的日期格式。您需要获得正确的日期格式。

同样在手册中,有评论说:

  

没有选项可以直接指定日期格式'c'(例如2004-02-12T15:19:21 + 00:00)。解决方法是使用Y-m-d \ TH:i:sT

另一个例子是:

<?php
$t = '2017-12-22T11:46:21.647+00:00';

var_dump(date("Y-m-d g:i:s a", strtotime("2017-12-22T11:46:21.647+00:00")));

这会给你:

2017-12-22 6:46:21 am

答案 1 :(得分:-1)

问题在于您提供格式的方式。试试这个或查看PHP Mannual

$t = '2017-12-22 11:46:21';

$ date = date_create_from_format('Y-m -d H:i:s',$ t); 的var_dump($日期 - &GT; getTimestamp());