我有一個系統,檢查當前時間是否在香港工作時間。 我確定工作時間是從上午9點到下午6點。 我的代碼正在工作,但我覺得有一個更好/更漂亮的方式來編寫IF條件。檢查工作時間的時間 - 改善代碼/邏輯
噹噹前時間不在HK工作時間時,該函數將返回True。 它也會在一天結束之前的15分鐘(6點)返回TRUE(香港下班時間),並且在開放時間前30分鐘返回FALSE(作爲香港工作時間)。
function hkOffHours($endHour = 18, $startHour = 9) {
$offHour = FALSE;
// create the DateTimeZone object for later
$dtzone = new DateTimeZone('Asia/Hong_Kong');
// first convert the timestamp into a string representing the local time
$time = date('r', time());
// now create the DateTime object for this time
$dtime = new DateTime($time);
// convert this to the user's timezone using the DateTimeZone object
$dtime->setTimeZone($dtzone);
// print the time using your preferred format
$time = $dtime->format('g:i A m/d/y');
$hour = $dtime->format('G');
$min = $dtime->format('i');
$day = $dtime->format('D');
// if weekend
if(($day == 'Sun' || $day == 'Sat'))
{
$offHour = TRUE;
}
// if out of office hours
if (
($admin_group == '1') &&
(
($hour == ($endHour-1) && $min>=45) ||
($hour >= $endHour) ||
($hour == ($startHour-1) && $min <= 30) ||
($hour <= ($startHour -2))
)
)
{
$offHour = TRUE;
}
return $offHour;
}
我會感激你的想法。
你可能更喜歡這個地方:http://codereview.stackexchange.com/ – Preexo
謝謝,不熟悉 – Lupin