检查用户是否在给定的时间在php中工作

时间:2019-06-14 10:31:33

标签: php laravel laravel-5

我有此代码:

$workStart = $point->start; // return 01:05:00
$workEnd = $point->finish; // return 05:30:00

$timeNow = Carbon::now()->format('H:i'); // return 12:30:34

if (.....){
  echo "user work";
} else {
  echo "user NOT work";
}

如何检查用户当前是否在工作?

4 个答案:

答案 0 :(得分:1)

我们可以通过将当前时间与开始时间和结束时间进行比较来比较当前时间是否处于给定格式。

$workStart = $point->start; // return 01:05:00
$workEnd = $point->finish; // return 05:30:00

$timeNow = Carbon::now()->format('H:i'); // return 12:30:34

if (strtotime($workStart) < strtotime($timeNow) && strtotime($workEnd) > strtotime($timeNow)){
  echo "user work";
} else {
  echo "user NOT work";
}

答案 1 :(得分:0)

您可以应用如下逻辑:

更新:从数据库中获取的值需要从英文文本日期时间转换为UNIX时间戳。

if(strtotime($workStart) < strtotime($workEnd)) {
  if ((strtotime($timeNow) > strtotime($workStart)) && (strtotime($workEnd) > strtotime($timeNow))){
    echo "user work";
  } else {
    echo "user NOT work";
  }
}

希望这会有所帮助!

答案 2 :(得分:0)

您阅读过documentation for the Carbon date class吗?为此,内置了一个功能。

它使人可读的代码不错:

$workStart = Carbon::createFromTimeString($point->start);
$workEnd =Carbon::createFromTimeString($point->finish);


if (Carbon::now()->between($workStart,$workEnd){
  echo "user work";
} else {
  echo "user NOT work";
}

答案 3 :(得分:0)

尝试一下。它根据上午/下午进行检查。记得use Carbon\carbon;

public function Checkwork()
   {
   $meeting = Carbon::now();
   $tim=$meeting->format('H:i:s');

   $workStart = '01:05:00'; // return 01:05:00 
   $workEnd = '05:30:00'; // return 05:30:00 


   if(($tim<$workStart)&&($tim>$workEnd)){

    dd('working');
  // dd($tim);

   }
   else{
    //dd($tim);
    dd('not working');
   }

 }