#laravel
#laravel
Вопрос:
У меня есть две даты: exam_start_date_time и exam_end_Date_time.Когда я нажимаю «начать экзамен», он переходит к функции laravel и проверяет, передано ли текущее время даты и времени окончания, ему нужно показать «срок действия экзамена истек», иначе он начнет экзамен.
$t1 = CarbonCarbon::parse($questionData->exam_end_date_time);
$t2 = CarbonCarbon::parse($questionData->exam_start_date_time);
if (CarbonCarbon::now()->gte($t1)){
return redirect()->back()->with('error', 'Exam Expired !!');
}
но здесь я получаю exam expired, даже время окончания экзамена остается до закрытия.
Ответ №1:
Попробуйте это
$t1 = CarbonCarbon::parse($questionData->exam_end_date_time);
$now = CarbonCarbon::now();
if($t1 < $now)
{
return redirect()->back()->with('error', 'Exam Expired !!');
}
Комментарии:
1. он не работает, все еще остается время и показывает, что экзамен истек
2. покажите мне свою
$questionData->exam_end_date_time
ценность? формат?
Ответ №2:
возможно, вы ищете это….
я думаю, это сработает для вас
$endTime = CarbonCarbon::parse($questionData->exam_end_date_time);
$startTime = CarbonCarbon::parse($questionData->exam_start_date_time);
if (CarbonCarbon::now()->between($endTime,$startTime)){
return redirect()->back()->with('error', 'Exam Expired !!');
}else{
$left = Carbon::now()->diffInMinutes($endTime ,false);
$left = Carbon::now()->diffInDays($endTime ,false);
$left = Carbon::now()->diffInHours($endTime ,false);
return redirect()->back()->with('info', $left.'Time Left !!');
}
Комментарии:
1. если экзамен состоится 22/09/2020, время начала — 12.00, а время окончания — 1.00. и текущее время — 12.42, тогда у экзамена есть время. он не завершен. тогда срок действия экзамена не истек
2. чего вы хотите? какую переменную вы используете? мин, часы, дни?
3. min использует, потому что у меня здесь есть таймер.
4. используйте `$ left.’ Осталась минута !!’
5. проверьте конфигурацию местного времени