【问题标题】:Add 30 seconds to the time with PHP使用 PHP 将时间增加 30 秒
【发布时间】:2010-06-16 11:37:48
【问题描述】:

如何将这个时间增加 30 秒?

$time = date("m/d/Y h:i:s a", time());

我不知道该怎么做,因为它显示了很多不同的时间单位,而我只想添加 30 秒。

【问题讨论】:

    标签: php time


    【解决方案1】:
    $time = date("m/d/Y h:i:s a", time() + 30);
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 php 5.3+,请查看 DateTime::add operationsmodify,真的比这容易得多。

      例如:

      $startTime = new DateTime("09:00:00");
      $endTime = new DateTime("19:00:00");
      
      
      while($startTime < $endTime) {
      
      $startTime->modify('+30 minutes'); // can be seconds, hours.. etc
      
      echo $startTime->format('H:i:s')."<br>";
      break;
      }
      

      【讨论】:

        【解决方案3】:

        使用 strtotime 怎么样?代码将是:

        strtotime( '+30 second' );
        

        【讨论】:

          【解决方案4】:
          $time = date("m/d/Y h:i:s a", time() + 30);
          
          //or
          
          $time = date("m/d/Y h:i:s a", strtotime("+30 seconds"));
          

          【讨论】:

            【解决方案5】:

            一般:

            $add_time=strtotime($old_date)+30;
            $add_date= date('m/d/Y h:i:s a',$add_time);
            

            【讨论】:

              【解决方案6】:

              见 mktime:

              mktime (date("H"), date("i"), date("s") + 30)
              

              http://www.php.net/manual/en/function.mktime.php

              应该做你想做的。

              【讨论】:

              • 因为丑。例如,如果date("s") 返回 50,那么它将是 50 + 30 = 80,这不是“时间”中的有效秒数。最好只使用 time() + 30 (更合乎逻辑)。
              • “因为它丑”是投反对票的原因,而不是投反对票且不加评论的理由。谢谢你的解释。
              • 并腾出时间来处理 80 并将其转换....这就是它的工作。您可以将 8,000,000 作为秒数,它会将其转换为正确的日期,mktime 就是这样做的。
              【解决方案7】:
              $time = date("m/d/Y h:i:s", time());
              $ts = strtotime($time);
              $addtime = date("m/d/Y h:i:s", mktime(date("h", $ts),date("i", $ts),date("s", $ts)+30,date("Y", $ts),date("m", $ts),date("d", $ts));
              

              将是上述所有内容的更解释版本。

              【讨论】:

                【解决方案8】:

                你可以用不同的视角来解决这个问题。首先,您可以创建一个current datetime 对象。然后,您创建一个future datetime,它比您给定的日期时间晚 30 秒。所以归结为以下几点:

                (new Future(
                    new Now(),
                    new NSeconds(30)
                ))
                    ->value();
                

                如果您想以您提到的特定格式输出,可以使用

                (new ISO8601Formatted(
                    new Future(
                        new Now(),
                        new NSeconds(30)
                    ),
                    'm/d/Y h:i:s a'
                ))
                    ->value()
                

                【讨论】:

                  猜你喜欢
                  • 2021-10-27
                  • 1970-01-01
                  • 2022-11-16
                  • 1970-01-01
                  • 2020-03-11
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-04-06
                  • 1970-01-01
                  相关资源
                  最近更新 更多