Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP上的错误日期时间_Php_Datetime_Format_Str Replace - Fatal编程技术网

PHP上的错误日期时间

PHP上的错误日期时间,php,datetime,format,str-replace,Php,Datetime,Format,Str Replace,你好,我需要帮助。mi代码错误,抱歉我的英语不好 错误:致命错误:在第11行的C:\xampp\htdocs\aplicacion\application\views\guest\container.php中调用布尔值上的成员函数format() mycontainer.php 我的目的是得到博客的创建日期。被添加到我的网站的url。还有这个职位的名字 <?php foreach ($consulta->result() as $fila)

你好,我需要帮助。mi代码错误,抱歉我的英语不好

错误:
致命错误:在第11行的C:\xampp\htdocs\aplicacion\application\views\guest\container.php中调用布尔值上的成员函数format()

mycontainer.php
我的目的是得到博客的创建日期。被添加到我的网站的url。还有这个职位的名字

<?php 
                    foreach ($consulta->result() as $fila) { 
                ?>
                    <div class="post-preview">
                        <?php
                            $date = DateTime::createFromFormat('YYYY-MM-DD', $fila->fecha);
                            $year = $date->format('Y',$date); 
                            $name = str_replace('','_', $fila->post);
                        ?>
                             <a href="<?php echo base_url()?>article/post/<?php echo $year ?>/<?php echo $name ?>">
php-MODEL

public function getPostByYearAndName($year = '', $name = '')
        {
            $result = $this->db->query("SELECT * FROM post WHERE year(fecha) = '$year' AND post LIKE '$name'");
            return $result->row();
        }
您的代码可以工作:

$date = DateTime::createFromFormat('y-m-d', '17-03-12');
echo $date->format('Y');
->

如果
$date
false
,则表示您的输入
$fila->fecha
的格式不是
YY-MM-DD

例如,如果您的日期格式为
YYYY-MM-DD
,则必须使用
“Y-m-d”

更新:

仅举例说明,如果输入是日期,但不是指定格式,例如:

$date = DateTime::createFromFormat('y-m-d', '2017-03-12');
echo $date->format('Y');
它复制了OPs错误:

PHP Fatal error:  Uncaught Error: Call to a member function format() on boolean in ~/tmp/date.php:5

因此,
$fila->fecha
为空,不是日期,也不是格式为
YY-MM-DD

1的日期。你收到了错误。2.读取错误。3.解释错误。4.搜索why
createFromFormat()
返回布尔值。5.哦,我发现
$fila->fecha
是一个错误的值,没关系,谢谢大家!
$fila->fecha
的内容是什么?$fila是日期。在数据库表上。费卡。是表中的一个内容。是的,代码确实有效,我一眼就知道了。也许你应该更加强调,
$fila->fecha
是一个布尔值。我不认为
$fila->fecha
,我认为这是一个比
YY-MM-DD
格式不同的日期。如果日期不是
createFromFormat
中指定的格式,
$date
将是
false
,请更加强调这一点。
$date = DateTime::createFromFormat('y-m-d', '2017-03-12');
echo $date->format('Y');
PHP Fatal error:  Uncaught Error: Call to a member function format() on boolean in ~/tmp/date.php:5