PHP - 比较日期,检查是否在最后一小时内

时间:2015-03-12 14:48:24

标签: php date datetime

我试图查看时间是否在最后一小时内。

$unit_date = date($unit['last_accessed'], 'Y-m-d H:i:s');

                $last_hour = date('Y-m-d H:i:s', strtotime('-1 hour')); 

                if($unit_date >= $last_hour ){
                    $connect = "<i class='fa fa-circle 2x' style='color:#2ECC71;'></i>";
                } else {
                    $connect = '';
                }

正如你所看到的那样,我将$ unit ['last_accessed']放入正确的格式,然后比较一小时前。如果时间在最后一小时内,$ connect是一个字体很棒的圆圈(绿色),如果它不在最后一小时内它是空的,那么现在它说的是在最后一小时内没有任何内容是假的。

4 个答案:

答案 0 :(得分:8)

if(time() - strtotime($unit['last_accessed']) < 3601){

if(time() - strtotime($unit['last_accessed']) > 3599){

time()和strtotime()都以秒为单位使用相同的时基

如果$ unit ['last_accessed']已经是整数时间变量,那么不要使用strtotime()。

答案 1 :(得分:2)

首先,你正在以错误的方式使用日期功能。从PHP的手册:

date ( string $format [, int $timestamp = time() ] )

您必须提供$ format字符串作为第一个参数,并将$ timestamp作为第二个参数。您可以检查时间是否在最后一小时,而不将Unix时间戳转换为另一个时间戳字符串。

$last_hour = time() - 60*60; //last hour timestamp
if($unit['last_accessed'] >= $last_hour){
       $connect = "<i class='fa fa-circle 2x' style='color:#2ECC71;'></i>";
}else{
       $connect = '';
}

正如你所看到的,我没有对时间戳进行任何转换,因为我没有在任何地方使用时间字符串。您应该了解有关使用unix时间戳或php时间函数的操作的更多信息。

<强>参考文献: http://php.net/manual/en/function.date.php

答案 2 :(得分:1)

DateTime 解决方案

Public Class video
    Inherits System.Web.UI.Page
    Public mes As String = Today.Month 'guarda el numero de mes actual en la variable mes
    Public rutavideo As String = "Http://euspsql01/prevencion/video/" And mes And ".mp4"

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


    End Sub

End Class

产生类似的答案:Calculate number of hours between 2 dates in PHP

答案 3 :(得分:0)

您的代码中出现错误。在一个地方,你可以这样叫date

  

日期(格式时间

在另一个地方,像这样:

  

日期(时间格式

检查date的PHP文档,找出哪一个是正确的。否则,您的代码看起来在逻辑上是正确的,如果可能不必要的复杂。