我怎样才能从laravel的约会时间中获得时间


How can I get time from datetime in laravel?

我从数据库中填充数组。名为"Yayina Başlama Zamanı"的列是日期时间列。我已经尝试过使用此代码从datetime对象获取时间,但出现了"对字符串调用成员函数format()"错误。如何修复此错误?

foreach ($sondakikaHaberler as $sonDakikaHaber){
            $dt = $sonDakikaHaber->yayina_baslama_zamani;
            $time = $dt ->format('H:i');
            $sonDakikaHaber['yayina_baslama_zamani'] = $time;
        }

谢谢你的帮助。

必须首先将数据库中的日期(以纯文本形式存储)转换为DateTime对象。所以你会得到:

$dt = new DateTime($sonDakikaHaber->yayina_baslama_zamani);

或者,如果你在一个有名称空间的类中,在DateTime:前面添加一个'

或者您也可以在页面顶部添加use DateTime,而不是在DateTime 前面添加'

$dt = new 'DateTime($sonDakikaHaber->yayina_baslama_zamani);

然后你可以调用上面的格式化方法

关于第二个错误(如注释中所示),您无法将结果对象$sonDakikaHaber转换为数组。所以改变:

$sonDakikaHaber['yayina_baslama_zamani'] = $time;

进入:

$sonDakikaHaber->yayina_baslama_zamani = $time;

您可以使用内置的日期功能,

date('H:i', strtotime("2021-04-29 03:30:00")

您可以尝试

  $time = date('H:i', strtotime($sonDakikaHaber->yayina_baslama_zamani));

请确保您的日期字段不是空的并且格式正确。format()将抛出null和不正确格式的错误id。此外,如果要使用format()方法,则必须将其转换为datetime对象。

对我们来说,最简单的方法是date()strtotime()记住,日期时间是作为字符串而不是PHP datetime对象从数据库返回的,所以您需要使用strtotime() 将该字符串转换为可用的时间戳

当你得到一个数组错误,也许代码应该是

$sondakikaHaberler->yayina_baslama_zamani = 
        date('H:i' strtotime($sondakikaHaberler->yayina_baslama_zamani) );