在使用Jalali波斯语的日期的字符串上调用成员函数diff()

时间:2018-08-22 20:22:32

标签: php laravel date

我在数据库中有一个finish_time类型的date列。我正在使用 Jalali 软件包使用以下代码获取当前的波斯语日期

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

我想知道$nowfinish_time之间的天数。我在下面使用了这段代码:

$now->diff($giveaway->finish_time)

但是我收到此错误

  

Call to a member function diff() on string

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

jDateTime::strftime 返回格式化的 string ,因此无法在变量->diff()上调用$now是一个字符串。

为此,请使用碳实例:

$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));

更新:

假设$giveaway->finish_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));