Recurr\Transformer\TextTransformer::getByDayAsText PHP Метод

getByDayAsText() публичный Метод

public getByDayAsText ( $byDay, $listSeparator = 'and' )
    public function getByDayAsText($byDay, $listSeparator = 'and')
    {
        if (empty($byDay)) {
            return '';
        }
        $map = array('SU' => null, 'MO' => null, 'TU' => null, 'WE' => null, 'TH' => null, 'FR' => null, 'SA' => null);
        $dayNames = $this->translator->trans('day_names');
        $timestamp = mktime(1, 1, 1, 1, 12, 2014);
        // A Sunday
        foreach (array_keys($map) as $short) {
            $long = $dayNames[date('w', $timestamp)];
            $map[$short] = $long;
            $timestamp += 86400;
        }
        $numOrdinals = 0;
        foreach ($byDay as $key => $short) {
            $day = strtoupper($short);
            $string = '';
            if (preg_match('/([+-]?)([0-9]*)([A-Z]+)/', $short, $parts)) {
                $symbol = $parts[1];
                $nth = $parts[2];
                $day = $parts[3];
                if (!empty($nth)) {
                    ++$numOrdinals;
                    $string .= $this->getOrdinalNumber($symbol == '-' ? -$nth : $nth);
                }
            }
            if (!isset($map[$day])) {
                throw new \RuntimeException("byDay {$short} could not be transformed");
            }
            if (!empty($string)) {
                $string .= ' ';
            }
            $byDay[$key] = ltrim($string . $map[$day]);
        }
        $output = $numOrdinals ? $this->translator->trans('the_for_weekday') . ' ' : '';
        if ($output == ' ') {
            $output = '';
        }
        $output .= $this->getListStringFromArray($byDay, $listSeparator);
        return $output;
    }