【问题标题】:How to properly compare two Unix timestamps如何正确比较两个 Unix 时间戳
【发布时间】:2021-11-08 07:23:23
【问题描述】:

我正在使用 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-&gt;datep 显示1636403400 和now()-&gt;timestamp 显示1636355812。

但它们的比较总是返回 TRUE 并显示弹出消息。连我都输入明年的时间戳!

那么这里出了什么问题?如何正确比较两个 Unix 时间戳并据此显示一些结果?

【问题讨论】:

    标签: php laravel unix timestamp laravel-5.8


    【解决方案1】:
    $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");
    }
    

    你需要采取相同的日期和格式,然后你可以有条件。

    【讨论】:

    • 找不到分隔符 找不到分隔符 数据丢失
    • 我认为你的版本不支持eq。尝试这个。 $result = $date1 === $date2;
    • 这个错误是指之前的行。我刚刚问了一个新问题:stackoverflow.com/questions/69880668/…
    • 另外,如果语句不工作,因为我弥补了如果相等,然后做出如果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2012-02-04
    • 2016-08-06
    • 2015-01-02
    相关资源
    最近更新 更多