Я пытаюсь разработать простой график на основе php …
Это моя таблица базы данных:
Предположим, что текущее время / дата: 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("Ymd H:i:s"); $result = mysql_query("SELECT * FROM events"); while($row = mysql_fetch_array($result)){ echo $row['Subject']; } mysql_close($con); ?>
Как фильтровать запрос, обрабатывать текущее время и запланированный объект? Спасибо!
(если current_time
находится между EndTime
и EndTime
– echo it's Subject
)
Попробуйте этот запрос
SELECT * FROM events WHERE NOW() BETWEEN StartTime AND EndTime
EDIT проверил и удалил бесполезный лимит и порядок
Попробуйте select * from events where StartTime <= NOW() and EndTime >= NOW()
NOW()
предоставит вам текущее время в mysql.
Попробуйте выполнить следующий запрос.
select * from events where current_time between startTime and endTime
Ваш запрос должен понравиться
$result = mysql_query("SELECT * FROM events WHERE current_time between startTime and endTime);
Оператор 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).'") ';
Во-первых, вам нужно будет преобразовать StartTime и EndTime в метку времени, используя strtotime, чтобы вы могли сравнить ее с текущим временем (то же самое относится и к текущему времени):
http://php.net/manual/en/function.strtotime.php
Затем просто скажите, если current_time> StartTime AND current_time <EndTime echo Subject. Что-то вроде этого должно работать:
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']; }
putenv("TZ=Asia/Calcutta"); // To Set TimeZone $now = date("Ymd H:i:s"); $sql = "select * from events where '$now' between StartTime and EndTime";