我有一个节目表功能,输出当天的节目单安排。。主要有 节目名称 节目介绍 和 节目开始时间和节目结束时间。。我要怎么判断当前时间输出的是哪一个?如何做时间判断?

解决方案 »

  1.   

    WHERE NOW() BETWEEN `节目开始时间` AND `节目结束时间`;
      

  2.   

    我的意思是我这个节目表比如 周一 {3:00 - 5:00->a节目表,5:00 - 6:00->b节目表,6:00-9:00->节目表c}这样的那么周二的话 这个表可能 {3:00 - 5:00->a节目表,5:00 - 5:30->B节目表,5:30 - 6:00->D节目表,8:00-9:30->C节目表}类似这种。那么我选择筛选时间的话。就是先索引 周一有哪些节目,然后输出这些节目的列表。。那么要输出当前时间正在播放哪个节目的话,就是比较这一天的时间的某时间段了。
      

  3.   

    再给WHERE子句增加一个条件就行了,在这个表里我不知道你的周几是如何表示的,字符串还是数字? 所以没写。大概就像这样 
    $week = date('N');
    $sql_where = "WHERE `week` = $week  AND NOW() BETWEEN `节目开始时间` AND `节目结束时间` ";
      

  4.   

    这个和你sql没有关系。你的节目表目前看没有规律,即使有可能以后需求也会变,只要在你的节目表中加个过期时间段就行了。
      

  5.   

    lz最好能把表详细列出来
    SELECT * FROM `table` WHERE CURRENT_TIME() BETWEEN `开始时间` AND `结束时间`;
      

  6.   

    我的这张表有id,contentid,title,content,week,start_time,finish_time,inputime,updatetime这几个字段,id(INT)(是自增型的)
    contentid (varchar类型)(该字段是来保存该节目是隶属于哪篇文章的)
    title(varchar类型),是来记录节目名称的
    content(text)保存节目介绍的
    week(varchar类型)是来保存当前节目播放的周期(比如此节目只在周1,3,5播出)
    start_time(time类型)(是来记录该节目播出的时间的比如(周一是在(5:30-6:00),周二在8:00-9:00播出的),
    finish_time(time类型)是对应的结束时间
    inputputtime(datetime)(就是该数据添加的时间),
    updatetime(datetime)(就是更新该数据的时间
    。现在我只想先查询比较出 今天周几,隶属于哪篇文章,然后再比较 当前的时间在哪个时间段,筛选出这个节目名。然后输出:当前正在播放:title
      

  7.   

    如果你节目单是周期性的,那就有多个判断拉。
    swtch($weeks){
      case 1:
    3:00 - 5:00->a节目表,5:00 - 6:00->b节目表,6:00-9:00->节目表c}这样的(做相应的判断就可)
      case 2:
      {3:00 - 5:00->a节目表,5:00 - 5:30->B节目表,5:30 - 6:00->D节目表,8:00-9:30->C节目表}(同理)}
      

  8.   

    为啥搞这么纠结...
    节目表是有规律的是吧? 那么只要在数据库中记录每个节目的起始时间,用unixtimestamp表示,只要
    节目开始 < 当前时间 < 节目结束   不就行了么?  
    然后就是定时去填充节目表就行呗..
      

  9.   

    你早给出表结构,问题早就解决了!现在的日期 now()
    今天周几 weekday(now())
    今天有哪些节目播出 find_in_set(weekday(now()), `week`) 注意你的 week 字段名是 mysql 保留字
    现在的时间 curtime()
    当前的时间在哪个时间段 curtime() between start_time and finish_time组合在一起
    select * from tbl_name where find_in_set(weekday(now()),`week`) and curtime() between start_time and finish_time