我在数据库中有一个finish_time
类型的date
列。我正在使用 Jalali
软件包使用以下代码获取当前的波斯语日期:
$now = \Morilog\Jalali\jDateTime::strftime('Y-m-d', strtotime('now'));
我想知道$now
和finish_time
之间的天数。我在下面使用了这段代码:
$now->diff($giveaway->finish_time)
但是我收到此错误
Call to a member function diff() on string
。
我该如何解决这个问题?
答案 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));