Php 对正在使用的字符串调用成员函数diff()

Php 对正在使用的字符串调用成员函数diff(),php,laravel,date,Php,Laravel,Date,我有一个finish\u time列,在数据库中键入date。我正在使用Jalali软件包获取当前波斯日期,代码如下: $now = \Morilog\Jalali\jDateTime::strftime('Y-m-d', strtotime('now')); 我想知道$now和完成时间之间的天数。我使用了以下代码: $now->diff($giveaway->finish_time) 但是我得到了这个错误 调用字符串上的成员函数diff() 如何解决此问题?jDateTime:

我有一个
finish\u time
列,在数据库中键入
date
。我正在使用
Jalali
软件包获取当前波斯日期,代码如下:

$now = \Morilog\Jalali\jDateTime::strftime('Y-m-d', strtotime('now'));
我想知道
$now
完成时间之间的天数。我使用了以下代码:

$now->diff($giveaway->finish_time)
但是我得到了这个错误

调用字符串上的成员函数diff()


如何解决此问题?

jDateTime::strftime
返回格式化的
字符串
,因此无法对变量
$now
调用
->diff()

为此,请使用碳实例:

$now = \Morilog\Jalali\jDateTime::strftime('Y-m-d H:i:s', strtotime('now'));

$_now = \Morilog\Jalali\jDateTime::createCarbonFromFormat('Y-m-d H:i:s', $now);
dd($_now->diff($giveaway->finish_time));
更新:

假设
$giveway->finish\u time
返回类似
1394/11/25 15:00:00的字符串,
然后需要将其转换为
DateTime
实例

$finishDate = \Morilog\Jalali\jDateTime::createCarbonFromFormat(
      'Y/m/d H:i:s', $giveaway->finish_time
); 

// Change the dateTime format according to how your ->finish_time is being formatted

// then, you'll be able to get the datetime difference using
dd($_now->diff($finishDate));

谢谢我测试了它,但得到了这个错误
DateTime::diff()希望参数1是DateTimeInterface,字符串given
@HanieAsemi似乎,
$giveway->finish\u time
返回一个
字符串,所以必须将其转换为
DateTimeInterface
实例。我更新了我的答案你明白了吗?