我有两次start_time = 2009-12-01 9.30 pm和end_time = 2009-12-01 11.30 pm(YYYY-MM-DD)。如果用户在这些时间之间进行任何活动,即2009-12-01晚上10:30我需要告诉他你做这项活动是无效的...... 两次2009-12-01 9.30 pm和2009-12-01 11.30 pm取自数据库。时间2009-12-01 10.30由用户提供。
我的问题是如何才能找到晚上9点30分到晚上11点30分之间发生的时间...
我用PHP编写程序
答案 0 :(得分:1)
$start = strtotime($start_time);
$end = strtotime($end_time);
$user = strtotime($user_time);
if($user > $start && $user < $end) die('You are not allowed');
答案 1 :(得分:1)
使用strtotime()
将字符串转换为Unix秒。然后一个简单的
if ($time1 < strtotime(10:30...) && strtotime(10:30...) < $time 2)
{
//do your stuff;
}
答案 2 :(得分:1)
您可以使用数据库查询或PHP。在PHP中:
$timeStart = strtotime('2009-12-01 11.30');
$timeEnd = strtotime('2009-12-01 09.30');
$time = strtotime('2009-12-01 10.30');
if($time > $timeStart && $time < $timeEnd) {
echo "Between given times.";
}
答案 3 :(得分:0)
将“2009-12-01 9.30 pm”和“2009-12-01 11.30 pm”转换为unix时间戳,然后将其与<
进行比较:
if ($start <= $event && $event < $end)
complain();
} else {
proceed();
}
答案 4 :(得分:0)
当您只需使用SQL查询时,无需进行任何过多的PHP处理:
SELECT 1 FROM your_table_name WHERE '2009-12-01 10:30:00' BETWEEN start_time AND end_time;
如果用户活动发生在数据库中的任何开始和结束时间之间,则返回1个或多个结果。请注意,您的表上应该有一个最左边的前缀索引(start_time,end_time)。
只需检查您的查询结果。如果行数大于或等于1,则表示用户活动属于数据库中的开始和结束时间。