如何正确比较两个 Unix 时间戳
How to properly compare two Unix timestamps
我正在使用 Laravel 5.8,如果当前日期的 unix 时间戳等于弹出窗口的定义 unix 时间戳,我想显示一条弹出消息。
所以为了做到这一点,我在控制器中添加了这个:
if($popup->datep == now()->timestamp){
$output .=' <a href=" '.$popup->linkp.' "><img src=" '. URL::to('popups/'.$popup->image_path).' " style="width: 100%;"></a>';
}
现在 $popup->datep
显示 1636403400
,now()->timestamp
显示 1636355812
。
但它们的比较总是 returns TRUE 并显示弹出消息。甚至我输入了明年的时间戳!
那么这里出了什么问题?我怎样才能正确地比较两个 Unix 时间戳并显示一些基于此的结果?
$date1= $popup->datep;
$date2 = Carbon::now;
$date1 = Carbon::createFromFormat('Y-m-d H:i:s', $date1);
$date2 = Carbon::createFromFormat('Y-m-d H:i:s', $date2);
$result = $date1->eq($date2);
if($result === true){
dd("equal");
}
你需要采用相同的日期和格式,然后你才能有条件。
我正在使用 Laravel 5.8,如果当前日期的 unix 时间戳等于弹出窗口的定义 unix 时间戳,我想显示一条弹出消息。
所以为了做到这一点,我在控制器中添加了这个:
if($popup->datep == now()->timestamp){
$output .=' <a href=" '.$popup->linkp.' "><img src=" '. URL::to('popups/'.$popup->image_path).' " style="width: 100%;"></a>';
}
现在 $popup->datep
显示 1636403400
,now()->timestamp
显示 1636355812
。
但它们的比较总是 returns TRUE 并显示弹出消息。甚至我输入了明年的时间戳!
那么这里出了什么问题?我怎样才能正确地比较两个 Unix 时间戳并显示一些基于此的结果?
$date1= $popup->datep;
$date2 = Carbon::now;
$date1 = Carbon::createFromFormat('Y-m-d H:i:s', $date1);
$date2 = Carbon::createFromFormat('Y-m-d H:i:s', $date2);
$result = $date1->eq($date2);
if($result === true){
dd("equal");
}
你需要采用相同的日期和格式,然后你才能有条件。