首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在特定时间后运行代码

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

Stack Overflow用户
提问于 2017-05-23 10:35:26
回答 2查看 120关注 0票数 1

我试着根据一个小时来显示一些内容。这个小时来自DB作为string字段。如果当前时间匹配或传递来自DB的时间,则应该显示某个内容,否则将是默认内容

到目前为止我尝试过的是:

代码语言:javascript
复制
       $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';
      }

这段代码不能正常工作,因为如果我想在20:00显示新内容,那么当当前时间是08:00:00时,第一个条件是真的。

我也试过

代码语言:javascript
复制
$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;
}

但这不是一个好方法,因为我无法猜到在这种情况下,DB的时间将是..。

欢迎任何想法!

编辑:

我有两个内容(新的和默认的)。新内容应从DB开始显示到00:00:00,然后是默认内容。

EN

回答 2

Stack Overflow用户

发布于 2017-05-23 15:01:59

如果您只从$p_objetct->getHour()方法获得24小时格式的小时,那么您可以简单地将其与date('H');进行比较。

如果你有精确的匹配,你可以使用:

代码语言:javascript
复制
<?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.";
}

如果您需要它作为一个较低的时间,可以随意使用和更改这个片段:

代码语言:javascript
复制
<?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.";
}
票数 2
EN

Stack Overflow用户

发布于 2017-05-23 10:53:31

您可以尝试根据时间设置一个具有名称的变量,将现有文件与该名称匹配,并使用php来要求它。如下所示:

代码语言:javascript
复制
<?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');
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44132396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档