【问题标题】:Add 5 minutes difference加5分钟差
【发布时间】:2014-05-06 12:32:58
【问题描述】:

我有问题。 我有一个特定的日期/时间(A),它放在一个变量中。让我们说它的May 06 2014 14:26。 我想将此日期/时间与文件的修改日期/时间(B)进行比较,如果相同,我也将文件的修改日期/时间(B)放入变量中。 问题是,我无法在文件 (B) 上获得完全相同的日期。所以,我希望它会增加 5 分钟的差异。例如,如果文件(B)的修改日期为May 06 2014 14:28,它将被放入一个变量中。或者如果它有修改日期May 06 2014 14:22,它也会被放入一个变量中。 如果有帮助,我正在使用date("F d Y H:i",$file['filetime']) 命令来获取文件的修改日期。 有可能这样做吗?提前致谢。

如果有不清楚的地方,请告诉我。我是新来的,所以可能很难正确解释。

【问题讨论】:

    标签: php date time difference


    【解决方案1】:

    也许会有所帮助:

    $datetimeA = strtotime($file1['filetime']);
    $datetimeB = strtotime($file2['filetime']);
    
    $interval  = abs($datetimeA - $datetimeB);
    $minutes   = round($interval / 60);
    
    if ($minutes > 5) {
     //do some magic here  
    }
    

    如果 $file['filetime'] 已经是一个时间戳,那么你可以在不调用strtotime()的情况下使用它。

    【讨论】:

      【解决方案2】:

      使用DateTime 类,只需几行即可完成:

      $datetime1 = new DateTime('2009-10-13 10:00:00');
      $datetime2 = new DateTime('2009-10-13 10:20:00');
      $interval = $datetime1->diff($datetime2);
      $yourIntervalle = $interval->format('%i minutes'));
      

      【讨论】:

        【解决方案3】:

        我要么直接使用 unix-timestamps,要么将 A 和 B 转换为 Unix Timestamps(例如使用strtotime)并根据您的要求进行比较。 如果您可以直接访问该文件,您甚至可以使用 filemtime 直接获取最后修改时间作为 unix 时间戳。

        【讨论】:

          【解决方案4】:

          猜猜这就是你要找的,如果你的问题只是增加 5 分钟:

          $dateB = new DateTime('2014-05-06 14:26:00');
          $interval = new DateInterval('PT5M');
          
          $dateB->add($interval);
          
          print_r($dateB);
          

          PHPSandbox:http://sandbox.onlinephpfunctions.com/code/9f9a2ee40f09f953c796c9c2dd7e15ad62b45772

          另外,请查看 DateInterval 以了解更多信息: http://www.php.net/manual/en/dateinterval.construct.php

          【讨论】:

            【解决方案5】:

            你可以这样做。如果你想从日期减去 5 分钟

            $given_date = 'May 06 2014 14:28';    
            $date = new DateTime($given_date);
            //subtract 5 minutes from the date
            $new_date = $date->sub(new DateInterval('PT' . '5' . 'M'));        
            echo $new_date->format('F d Y H:i'); 
            

            如果你想增加 5 分钟然后改变

            //add 5 minutes to the date
            $new_date = $date->add(new DateInterval('PT' . '5' . 'M'));
            

            【讨论】:

              【解决方案6】:

              首先,我认为您需要通过 strtotime 方法比较两个日期/时间。有了它,您可以比较两个日期。 然后,如果我对 If/Else 方法的理解正确,您只需在数据库中插入一两个即可。

              希望对你有帮助!

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2020-07-30
                • 1970-01-01
                • 2021-06-13
                • 2021-04-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多