diff --git a/app/Models/User.php b/app/Models/User.php index bdfcfc3e..e61df3ee 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -173,8 +173,17 @@ class User public function canSign($return_remaining_time = false) { // convert to timestamp - $remaining_time = (strtotime($this->getLastSignTime()) + Option::get('sign_gap_time') * 3600 - time()) / 3600; - return $return_remaining_time ? round($remaining_time) : ($remaining_time <= 0); + $last_sign_timestamp = strtotime($this->getLastSignTime()); + $zero_timestamp_today = strtotime(date('Y-m-d',time())); + $zero_timestamp_tomorrow = strtotime(date('Y-m-d',strtotime('+1 day'))); + + if (Option::get('sign_after_zero')) { + $remaining_time = ($zero_timestamp_tomorrow - $last_sign_timestamp) / 3600; + return $return_remaining_time ? round($remaining_time) : ($last_sign_timestamp <= $zero_timestamp_today); + } else { + $remaining_time = ($last_sign_timestamp + Option::get('sign_gap_time') * 3600 - time()) / 3600; + return $return_remaining_time ? round($remaining_time) : ($remaining_time <= 0); + } } public function getLastSignTime() diff --git a/resources/views/admin/score.tpl b/resources/views/admin/score.tpl index 128d7f62..5ddd5583 100644 --- a/resources/views/admin/score.tpl +++ b/resources/views/admin/score.tpl @@ -84,6 +84,7 @@ $sign_score = $_POST['sign_score_from'].','.$_POST['sign_score_to']; Option::set('sign_score', $sign_score); Option::set('sign_gap_time', $_POST['sign_gap_time']); + Option::set('sign_after_zero', isset($_POST['sign_after_zero']) ? '1' : '0'); echo '
签到时间 + + | ++ + | +