如何在特定时间后运行代码

I'm trying to display some content based on a hour. This hour is coming from DB as string field. If the current time match or passed the time from DB, a certain content should be displayed else it's the default content

What i've tried so far :

       $time    = strtotime($p_objetct->getHour());

      //we check if  this has already passed to 
      //retrieve corresponding content else we display default content
      if ($time >= date("h:i:sa")) {
            echo 'time to display new content !';
      }else{
            echo 'display content default';
      }

This code is not working well as you can guess 'cause if I want to display new content at 20:00:00, the 1st condition is true when the current time is 08:00:00..

I've also tried that

$time      = strtotime(p_objetct->getHour());
$selection = floor((date('G',$time) / 2));
switch ($selection) {
case 0:
   echo 'time between 0-2!';
   break;
case 1:
   echo 'time between 2-4!';
   break;
case 2:
  echo 'time between 4-6!';
  break;
case 3:
  echo 'time between 6-8!';
  break;
case 4:
   echo 'time between 8-10!';
   break;
case 5:
   echo 'time between 10-12!';
   break;
case 6:
  echo 'time between 12-14!';
  break;
case 7:
  echo 'time between 14-16!';
  break;
case 8:
  echo 'time between 16-18!';
  break;
case 9:
  echo 'time between 18-20!';
  break;
case 10:
  echo 'time between 20-22!';
  break;
case 11:
  echo 'time between 22-24!';
  break;
}

But this wasnt the good approach because i cant guess in which case the time from DB will be..

Any ideas are welcomed !

Edit :

I have 2 contents (new and default). The new content should be display from time from DB until 00:00:00 then it should be the default one

You could try to set a variable with a name based on time, matching an existing file with that name and require it with php. Like this:

<?php
    $time      = date('H',time());
    $name_of_content_to_require = false;
    switch ($time) {
    case 0:
       $name_of_content_to_require = '0-2';
       break;
    case 1:
       $name_of_content_to_require = '2-4';
       break;
    case 2:
      $name_of_content_to_require = '4-6';
      break;
    case 3:
      $name_of_content_to_require = '6-8';
      break;
    case 4:
       $name_of_content_to_require = '8-10';
       break;
    case 5:
       $name_of_content_to_require = '10-12';
       break;
    case 6:
      $name_of_content_to_require = '12-14';
      break;
    case 7:
      $name_of_content_to_require = '14-16';
      break;
    case 8:
      $name_of_content_to_require = '16-18';
      break;
    case 9:
      $name_of_content_to_require = '18-20';
      break;
    case 10:
      $name_of_content_to_require = '20-22';
      break;
    case 11:
      $name_of_content_to_require = '22-24';
      break;
    }
    if( $name_of_content_to_require ) {
      require_once __DIR__ . $name_of_content_to_require . '.php';
    } else {
      die('with some error, or throw an exception');
    }

If you get only the hour in 24h format from your $p_objetct->getHour() method you can simply compare it to date('H');.

If you wat exact matches you can use:

<?php
$hourToCheck = $p_objetct->getHour();
$currentHour = date('H'); // As of PHP manual "H" returns the hour in 24h format

$contentToDisplay = "What ever you wanna display as default.";
if ($hourToCheck === $currentHour) {
    $contentToDisplay = "Your matching content.";
}

If you need it as a lower bound time feel free to use and change this snippet:

<?php
$hourToCheck = $p_objetct->getHour();
$currentHour = date('H'); // As of PHP manual "H" returns the hour in 24h format

$contentToDisplay = "What ever you wanna display as default.";
if ($hourToCheck <= $currentHour) {
    $contentToDisplay = "Your matching content 1.";
}