PHP / MySQL查询 - 如果当前时间/日期在计划中

时间:2012-03-21 08:39:24

标签: php mysql datetime calendar

我正在尝试开发一个简单的基于php的计划......

这是我的数据库表: enter image description here

我们说当前时间/日期是:2012-03-21 02:00:00

PHP脚本应回显: Meeting 2

我有一部分脚本,但不知道下一步该做什么

<?php
$con = mysql_connect("localhost","root","");
if (!$con){die('Could not connect: ' . mysql_error());}
mysql_select_db("schedule", $con);

$current_time = date("Y-m-d H:i:s");

$result = mysql_query("SELECT * FROM events");

while($row = mysql_fetch_array($result)){

  echo $row['Subject'];
}
mysql_close($con);
?>

如何过滤查询,过滤当前时间和预定主题?谢谢!

(如果current_time介于StartTimeEndTime之间 - 请回复Subject

7 个答案:

答案 0 :(得分:7)

尝试此查询

SELECT * FROM events WHERE NOW() BETWEEN StartTime AND EndTime

答案 1 :(得分:1)

试试select * from events where StartTime <= NOW() and EndTime >= NOW() NOW()会给你当前的mysql时间。

答案 2 :(得分:1)

请尝试以下查询

select * from events where current_time between startTime and endTime

答案 3 :(得分:1)

您的查询应该是这样的

$result = mysql_query("SELECT * FROM events WHERE current_time between startTime and endTime);

答案 4 :(得分:1)

mysql BETWEEN运算符可能有用。

$startDate = gmdate('Y/m/d/ H:i:s','2012-03-21 02:00:00');
$endDate   = gmdate('Y/m/d/ H:i:s','2012-03-21 02:23:59');

$sql = 'select subject from events 
  where startTime between "'.gmdate("Y/m/d H:i:s", $startDate) . 
  '" and "' . gmdate("Y/m/d H:i:s", $endDate).'") ';

答案 5 :(得分:0)

首先,您必须使用strtotime将StartTime和EndTime转换为时间戳,以便将其与当前时间进行比较(当前时间相同):

http://php.net/manual/en/function.strtotime.php

然后就说当前时间&gt; StartTime和current_time&lt; EndTime回声主题。 这样的事情应该有效:

while($row = mysql_fetch_array($result)){
  $startTime = strtotime($row['StartTime']);
  $endTime = strtotime($row['StartTime']);
  if (strtotime($current_time) > $startTime && strtotime($current_time) < $endTime
      echo $row['Subject'];
}

答案 6 :(得分:0)

putenv("TZ=Asia/Calcutta");  // To Set TimeZone
$now = date("Y-m-d H:i:s");
$sql = "select * from events where '$now' between StartTime and EndTime";