如何在PHP中获得下一个0900日期/时间?

时间:2013-05-26 02:21:42

标签: php date strtotime

我需要在PHP中获得下一个0900日期。例如:

  1. 如果现在是0859,则下一个0900今天是0900
  2. 如果现在是0901,下一个0900明天是0900
  3. 我只对yyyymmdd格式的日期感兴趣。有关如何做到这一点的任何建议?我认为datestrtotime是我需要使用的功能,但我不确定如何处理“下一个0900”。

    这不起作用:echo date('Ymd', strtotime('next 0900'));

2 个答案:

答案 0 :(得分:3)

这可以为您提供下一个9:00的日期:

date('Ymd', strtotime('9:00'));

编辑:不,实际上这不起作用。试试这个(不是那么简单,但有效):

// if the current time is greater than the time at 9:00, give 9:00 tomorrow
// Otherwise give 9:00 today
$nextnth = (mktime(9) < time()) ? strtotime('tomorrow 0900') : strtotime('today 0900');
echo date('Ymd', $nextnth);

答案 1 :(得分:0)

试试这个:

$x = strtotime('tomorrow 09:00') - strtotime("now");

if ($x > 86400)  // If it's more than 1 day we're actually before 09:00, subtract 1 day
    $x -= 86400;

echo "Now: ".date("Y-m-d H:i:s")."\r\n";
echo "Time until 0900: ".date("H\h i\m s\s", $x).".\r\n";

可替换地:

$x = (strtotime('tomorrow 09:00') - strtotime("now")) % 86400;

echo "Now: ".date("Y-m-d H:i:s")."\r\n";
echo "Time until 0900: ".date("H\h i\m s\s", $x).".\r\n";