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 '
设置已保存。
'; } ?> @@ -111,6 +112,17 @@ + + + + +
签到时间 + + + +
diff --git a/setup/options.php b/setup/options.php index 7730961e..ba0a5bf5 100644 --- a/setup/options.php +++ b/setup/options.php @@ -3,7 +3,7 @@ * @Author: printempw * @Date: 2016-07-29 11:53:11 * @Last Modified by: printempw - * @Last Modified time: 2016-07-29 12:06:38 + * @Last Modified time: 2016-07-29 13:35:57 */ return [ @@ -27,5 +27,6 @@ return [ 'sign_gap_time' => '24', 'sign_score' => '10,100', 'score_per_storage' => '1', - 'score_per_player' => '100' + 'score_per_player' => '100', + 'sign_after_zero' => '0' ];