public static function getSchedule() { $currentPeriod = \app\components\helpers\Battle::calcPeriod(@$_SERVER['REQUEST_TIME'] ?: time()); $ret = (object) ['current' => (object) ['t' => \app\components\helpers\Battle::periodToRange($currentPeriod), 'regular' => [], 'gachi' => []], 'next' => (object) ['t' => \app\components\helpers\Battle::periodToRange($currentPeriod + 1), 'regular' => [], 'gachi' => []]]; $list = static::findByModeAndPeriod(['regular', 'gachi'], [$currentPeriod, $currentPeriod + 1])->all(); foreach ($list as $o) { $key = $o->period == $currentPeriod ? 'current' : 'next'; $ret->{$key}->{$o->rule->mode->key}[] = $o; } return $ret; }
public function toPermLink($formName = false) { if ($formName === false) { $formName = $this->formName(); } $ret = []; $push = function ($key, $value) use($formName, &$ret) { if ($formName != '') { $key = sprintf('%s[%s]', $formName, $key); } $ret[$key] = $value; }; foreach (['lobby', 'rule', 'map', 'weapon', 'result'] as $key) { $value = $this->{$key}; if ((string) $value !== '') { $push($key, $value); } } $now = @$_SERVER['REQUEST_TIME'] ?: time(); switch ($this->term) { case 'this-period': $t = BattleHelper::periodToRange(BattleHelper::calcPeriod($now), 180); $push('term', 'term'); $push('term_from', date('Y-m-d H:i:s', $t[0])); $push('term_to', date('Y-m-d H:i:s', $t[1] - 1)); break; case 'last-period': $t = BattleHelper::periodToRange(BattleHelper::calcPeriod($now - 14400), 180); $push('term', 'term'); $push('term_from', date('Y-m-d H:i:s', $t[0])); $push('term_to', date('Y-m-d H:i:s', $t[1] - 1)); break; case '24h': $push('term', 'term'); $push('term_from', date('Y-m-d H:i:s', $now - 86400)); $push('term_to', date('Y-m-d H:i:s', $now)); break; case 'today': $push('term', 'term'); $push('term_from', date('Y-m-d 00:00:00', $now)); $push('term_to', date('Y-m-d 23:59:59', $now)); break; case 'yesterday': $t = mktime(12, 0, 0, date('n', $now), date('j', $now) - 1, date('Y', $now)); $push('term', 'term'); $push('term_from', date('Y-m-d 00:00:00', $t)); $push('term_to', date('Y-m-d 23:59:59', $t)); break; case 'term': $push('term', 'term'); $push('term_from', date('Y-m-d H:i:s', strtotime($this->term_from))); $push('term_to', date('Y-m-d H:i:s', strtotime($this->term_to))); break; } return $ret; }