我已经在我的数据库中插入了time_of_start,如下所示:
$time_of_start = strtotime(date('H:i:s a'));
几天后我想检查current_time是same_time_of_start还是最多+2小时,所以我使用了以下代码:
$time_of_received = strtotime(date('H:i:s a'));
if ($time_of_received > $time_of_start) {
$extra_used_time_by_minutes = round(($time_of_received - $time_of_start)/60);
if ($extra_used_time_by_minutes > 120) {
$message = 'something here...';
} else {
$message = 'something else here...';
}
}
我认为这里有问题,谢谢你的帮助。
更多说明: 我正在为汽车租赁办公室提出申请,所以我想确保顾客在购买汽车的第一天同时归还汽车。
我也会给他一个2小时的免费时间,如果他免费通过两个小时,我会把它算作额外的一天。 例如:他下午4点开车,并在晚上7点后3天后将车返回。 希望足够清楚。
答案 0 :(得分:1)
以下是使用时间的示例。您无需额外计算来确定用户是否正在使用宽限期。这应该非常简单,可以调整到程序中以使用数据库/输入字段而不是硬编码值。
这确定了返回时间,并在租借到数据库时使用。
// set up the requirements
$grace = 720; // 2 hours in seconds
$days = 5; // Determines how many days the rental is for.
$rental_time = time() + (60 * 60 * 24 * $days) + $grace;
因为您使用返回时间而不是开始时间设置时间戳,所以返回更容易管理。
$time_return_due = $time_from_database;
if (time() > $time_return_due) {
// update the time stamp no added grace you already have it included
$new_return_due = $time_return_due + (60 * 60 * 24);
// apply new billing, send messages etc.
} else {
// complete your returned
}
答案 1 :(得分:0)
你可以使用php时间函数http://php.net/manual/en/function.time.php而不是strtotime(date('H:i:s a'));
另外,你对你的$消息做了什么?
答案 2 :(得分:0)
嗨,Mahmoud Yhya尝试使用echo
ucfirst(substr($result['@attributes']['overflows'], strlen($name)))
. ucfirst($name);
获取当前小时,date("H")
将小时保存在数据库中。
答案 3 :(得分:0)
您可以使用日期功能将时差转换为分钟。
$diff = $time_of_received - $time_of_start;
$extra_used_time_by_minutes = date('i', $diff); // time in minutes