【问题标题】:How to get next day at a certain hour in PHP?如何在PHP中的某个时间获得第二天?
【发布时间】:2013-09-03 11:39:01
【问题描述】:

如果日期大于第二天的 00:00,我需要检查 PHP 中的日期。 一开始我尝试使用

if($date_variable<strtotime('+1day')){
   return true;
}else{
   return false
}

但实际上它所做的是添加到 time() (24*60*60)

有什么解决办法吗?

P.S.:我试图避免在 +1day 上使用日期,并在没有时间信息的情况下回溯到 UNIX

【问题讨论】:

  • $date_variable 是 DateTime 对象吗?
  • 你使用的是 unix 时间戳还是 y-m-d H-i-s 格式?
  • @Xfile 似乎是一个 UNIX 时间戳,因为 strtotime 返回一个时间戳

标签: php date time strtotime days


【解决方案1】:

你可以使用:

if($date_variable<strtotime('midnight tomorrow')){
   return true;
}else{
   return false
}

【讨论】:

    【解决方案2】:

    好的,接受的答案现在已经超过三年了,因为我们得到了 PHP5,甚至现在是 PHP7,我们可以使用 DateTime 类更容易地做到这一点。 DateTime 类是原生 PHP 类。不需要更多的库。

    $oDateNow = new DateTime(); // Date now
    $oDateTomorrow = new DateTime('tomorrow midnight'); // Date tomorrow midnight
    
    $bResult = $oDateNow < $oDateTomorrow ? true : false;
    

    DateTime 类接受 strtotime() 函数也接受的所有参数。

    【讨论】:

      【解决方案3】:

      您可以尝试像这样使用 mktime():

      if($date_variable<mktime(0,0,0, date('m'), date('d')+1, date('Y')){
         return true;
      }else{
         return false
      }
      

      【讨论】:

      • 见鬼!非常感谢伙计。我有一种感觉“我有它在我的眼前,但我看不到它”。我将使用 Nils 解决方案,因为它的代码更小,但非常感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 2012-12-01
      • 2015-03-02
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      相关资源
      最近更新 更多