Php 将字符串解析为时间戳以查找天数差异

Php 将字符串解析为时间戳以查找天数差异,php,string,laravel,date,parsing,Php,String,Laravel,Date,Parsing,我需要找出两个时间戳之间的天数差异 $now = date("Y-m-d"); //This return 2017-01-04 $last_active = date("Y-m-d", strtotime($user->updated_at->toDateTimeString())); //This returns for example: 2016-07-20 $datediff = $now - $last_active; $days = floor($datediff/

我需要找出两个时间戳之间的天数差异

$now = date("Y-m-d");
//This return 2017-01-04

$last_active = date("Y-m-d", strtotime($user->updated_at->toDateTimeString())); 
//This returns for example: 2016-07-20

$datediff = $now - $last_active;
$days = floor($datediff/(60*60*24));
此代码在$days内一直返回0

然而,
$now
$last\u active
似乎是字符串,因此我不能将两者相减,然后$days将返回0

如何将两者相减?我需要某种方法将它们解析为某种变量,在那里我可以将两者相减


到目前为止,我尝试了以下方法:

这不起作用,因为我的变量是字符串,这是我的猜测

我也尝试过将日期解析为整数,但这会导致,例如20170104-20160720,它给出的值与两个日期之间的天数差无关


希望得到一些有用的建议

致以最良好的祝愿,
Patrick

因为你使用的是Laravel,所以你可以使用开箱即用的碳。使用
diff.()
方法,包括
diffInDays
diffForHumans()
和其他方法:

Carbon::parse($stringDate)->diffInDays(Carbon::now());

如果您需要比较两天(与现在没有区别),只需使用另一个
parse()
,而不是
now()

,因为您使用的是Laravel,所以您可以使用现成的碳。使用
diff.()
方法,包括
diffInDays
diffForHumans()
和其他方法:

Carbon::parse($stringDate)->diffInDays(Carbon::now());

如果需要比较两天(与现在没有差异),只需使用另一个
parse()
,而不是使用PHP
diff()函数
now()

天数差异

$now = new DateTime();
$last_active = new DateTime($user->updated_at->toDateTimeString());
$interval = $now ->diff($last_active);
$difference = $interval->format('%a');
echo $difference;

使用PHP
diff()函数的天数差异

$now = new DateTime();
$last_active = new DateTime($user->updated_at->toDateTimeString());
$interval = $now ->diff($last_active);
$difference = $interval->format('%a');
echo $difference;

你可以用碳很容易地做到这一点

如果您使用的是字符串,那么应该能够使用

$date1 = Carbon\Carbon::parse('January 4th 2017');
$date2 = Carbon\Carbon::parse('January 1st 2017');
这将给你两个碳物体,你现在可以用它们来比较

$days = $date1->diffInDays($date2);
使用Laravel时间戳,您可以从盒子中取出一个碳物体。因此,使用您的示例,您应该能够做到这一点

$days = $user->updated_at->diffInDays(Carbon::now());

你可以用碳很容易地做到这一点

如果您使用的是字符串,那么应该能够使用

$date1 = Carbon\Carbon::parse('January 4th 2017');
$date2 = Carbon\Carbon::parse('January 1st 2017');
这将给你两个碳物体,你现在可以用它们来比较

$days = $date1->diffInDays($date2);
使用Laravel时间戳,您可以从盒子中取出一个碳物体。因此,使用您的示例,您应该能够做到这一点

$days = $user->updated_at->diffInDays(Carbon::now());
对这两个日期使用
strotime()
进行比较,将它们计算为自UNIX纪元(1970年1月1日00:00:00 UTC)以来的秒数

例如:

$now = date("Y-m-d");
$last_active = date("Y-m-d", strtotime($user->updated_at->toDateTimeString())); 
$current = strtotime($now);
$last = strtotime($last_active);
$diff = $current - $last;
$days = floor($diff/(60*60*24));
对这两个日期使用
strotime()
进行比较,将它们计算为自UNIX纪元(1970年1月1日00:00:00 UTC)以来的秒数

例如:

$now = date("Y-m-d");
$last_active = date("Y-m-d", strtotime($user->updated_at->toDateTimeString())); 
$current = strtotime($now);
$last = strtotime($last_active);
$diff = $current - $last;
$days = floor($diff/(60*60*24));

您是否也用
diff()
函数尝试过它?您是否也用
diff()
函数尝试过它?