예제 #1
0
function shedule2str($timeperiod)
{
    $timeperiod['hour'] = floor($timeperiod['start_time'] / 3600);
    $timeperiod['minute'] = floor(($timeperiod['start_time'] - $timeperiod['hour'] * 3600) / 60);
    if ($timeperiod['hour'] < 10) {
        $timeperiod['hour'] = '0' . $timeperiod['hour'];
    }
    if ($timeperiod['minute'] < 10) {
        $timeperiod['minute'] = '0' . $timeperiod['minute'];
    }
    $str = S_AT . SPACE . $timeperiod['hour'] . ':' . $timeperiod['minute'] . SPACE . S_ON_SMALL . SPACE;
    if ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_ONETIME) {
        $str = S_AT . SPACE . date('H', $timeperiod['start_date']) . ':' . date('i', $timeperiod['start_date']) . SPACE . S_ON_SMALL . SPACE . zbx_date2str(S_MAINTENANCES_SCHEDULE_DATE_FORMAT, $timeperiod['start_date']);
    } else {
        if ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_DAILY) {
            $str .= S_EVERY_SMALL . SPACE . ($timeperiod['every'] > 1 ? $timeperiod['every'] . SPACE . S_DAYS_SMALL : S_DAY_SMALL);
        } else {
            if ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_WEEKLY) {
                $days = '';
                $dayofweek = zbx_num2bitstr($timeperiod['dayofweek'], true);
                $length = zbx_strlen($dayofweek);
                for ($i = 0; $i < $length; $i++) {
                    if ($dayofweek[$i] == 1) {
                        if (!zbx_empty($days)) {
                            $days .= ', ';
                        }
                        $days .= getDayOfWeekCaption($i + 1);
                    }
                }
                $str .= S_EVERY_SMALL . SPACE . $days . SPACE . S_OF_EVERY_SMALL . SPACE . ($timeperiod['every'] > 1 ? $timeperiod['every'] . SPACE . S_WEEKS_SMALL : S_WEEK_SMALL);
            } else {
                if ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_MONTHLY) {
                    $months = '';
                    $month = zbx_num2bitstr($timeperiod['month'], true);
                    $length = zbx_strlen($month);
                    for ($i = 0; $i < $length; $i++) {
                        if ($month[$i] == 1) {
                            if (!zbx_empty($months)) {
                                $months .= ', ';
                            }
                            $months .= getMonthCaption($i + 1);
                        }
                    }
                    if ($timeperiod['dayofweek'] > 0) {
                        $days = '';
                        $dayofweek = zbx_num2bitstr($timeperiod['dayofweek'], true);
                        $length = zbx_strlen($dayofweek);
                        for ($i = 0; $i < $length; $i++) {
                            if ($dayofweek[$i] == 1) {
                                if (!zbx_empty($days)) {
                                    $days .= ', ';
                                }
                                $days .= getDayOfWeekCaption($i + 1);
                            }
                        }
                        $every = '';
                        switch ($timeperiod['every']) {
                            case 1:
                                $every = S_FIRST;
                                break;
                            case 2:
                                $every = S_SECOND;
                                break;
                            case 3:
                                $every = S_THIRD;
                                break;
                            case 4:
                                $every = S_FOURTH;
                                break;
                            case 5:
                                $every = S_LAST;
                                break;
                        }
                        $str .= $every . SPACE . $days . SPACE . S_OF_EVERY_SMALL . SPACE . $months;
                    } else {
                        $str .= S_DAY_SMALL . SPACE . $timeperiod['day'] . SPACE . S_OF_EVERY_SMALL . SPACE . $months;
                    }
                }
            }
        }
    }
    return $str;
}
예제 #2
0
function shedule2str($timeperiod)
{
    $timeperiod['hour'] = floor($timeperiod['start_time'] / SEC_PER_HOUR);
    $timeperiod['minute'] = floor(($timeperiod['start_time'] - $timeperiod['hour'] * SEC_PER_HOUR) / SEC_PER_MIN);
    if ($timeperiod['hour'] < 10) {
        $timeperiod['hour'] = '0' . $timeperiod['hour'];
    }
    if ($timeperiod['minute'] < 10) {
        $timeperiod['minute'] = '0' . $timeperiod['minute'];
    }
    if ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_ONETIME) {
        $str = zbx_date2str(DATE_TIME_FORMAT, $timeperiod['start_date']);
    } elseif ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_DAILY) {
        $str = _n('At %1$s:%2$s on every day', 'At %1$s:%2$s on every %3$s days', $timeperiod['hour'], $timeperiod['minute'], $timeperiod['every']);
    } elseif ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_WEEKLY) {
        $days = '';
        $dayofweek = zbx_num2bitstr($timeperiod['dayofweek'], true);
        $length = strlen($dayofweek);
        for ($i = 0; $i < $length; $i++) {
            if ($dayofweek[$i] == 1) {
                if (!zbx_empty($days)) {
                    $days .= ', ';
                }
                $days .= getDayOfWeekCaption($i + 1);
            }
        }
        $str = _n('At %1$s:%2$s on every %3$s of every week', 'At %1$s:%2$s on every %3$s of every %4$s weeks', $timeperiod['hour'], $timeperiod['minute'], $days, $timeperiod['every']);
    } elseif ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_MONTHLY) {
        $months = '';
        $month = zbx_num2bitstr($timeperiod['month'], true);
        $length = strlen($month);
        for ($i = 0; $i < $length; $i++) {
            if ($month[$i] == 1) {
                if (!zbx_empty($months)) {
                    $months .= ', ';
                }
                $months .= getMonthCaption($i + 1);
            }
        }
        if ($timeperiod['dayofweek'] > 0) {
            $days = '';
            $dayofweek = zbx_num2bitstr($timeperiod['dayofweek'], true);
            $length = strlen($dayofweek);
            for ($i = 0; $i < $length; $i++) {
                if ($dayofweek[$i] == 1) {
                    if (!zbx_empty($days)) {
                        $days .= ', ';
                    }
                    $days .= getDayOfWeekCaption($i + 1);
                }
            }
            $every = '';
            switch ($timeperiod['every']) {
                case 1:
                    $every = _('First');
                    break;
                case 2:
                    $every = _('Second');
                    break;
                case 3:
                    $every = _('Third');
                    break;
                case 4:
                    $every = _('Fourth');
                    break;
                case 5:
                    $every = _('Last');
                    break;
            }
            $str = _s('At %1$s:%2$s on %3$s %4$s of every %5$s', $timeperiod['hour'], $timeperiod['minute'], $every, $days, $months);
        } else {
            $str = _s('At %1$s:%2$s on day %3$s of every %4$s', $timeperiod['hour'], $timeperiod['minute'], $timeperiod['day'], $months);
        }
    }
    return $str;
}
function shedule2str($timeperiod)
{
    $timeperiod['hour'] = floor($timeperiod['start_time'] / SEC_PER_HOUR);
    $timeperiod['minute'] = floor(($timeperiod['start_time'] - $timeperiod['hour'] * SEC_PER_HOUR) / SEC_PER_MIN);
    if ($timeperiod['hour'] < 10) {
        $timeperiod['hour'] = '0' . $timeperiod['hour'];
    }
    if ($timeperiod['minute'] < 10) {
        $timeperiod['minute'] = '0' . $timeperiod['minute'];
    }
    $str = _('At') . SPACE . $timeperiod['hour'] . ':' . $timeperiod['minute'] . SPACE . _('on') . SPACE;
    if ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_ONETIME) {
        $str = _('At') . SPACE . date('H', $timeperiod['start_date']) . ':' . date('i', $timeperiod['start_date']) . SPACE . _('on') . SPACE . zbx_date2str(_('d M Y'), $timeperiod['start_date']);
    } elseif ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_DAILY) {
        $str .= _('every') . SPACE . ($timeperiod['every'] > 1 ? $timeperiod['every'] . SPACE . _('days') : _('day'));
    } elseif ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_WEEKLY) {
        $days = '';
        $dayofweek = zbx_num2bitstr($timeperiod['dayofweek'], true);
        $length = zbx_strlen($dayofweek);
        for ($i = 0; $i < $length; $i++) {
            if ($dayofweek[$i] == 1) {
                if (!zbx_empty($days)) {
                    $days .= ', ';
                }
                $days .= getDayOfWeekCaption($i + 1);
            }
        }
        $str .= _('every') . SPACE . $days . SPACE . _('of every') . SPACE . ($timeperiod['every'] > 1 ? $timeperiod['every'] . SPACE . _('weeks') : _('week'));
    } elseif ($timeperiod['timeperiod_type'] == TIMEPERIOD_TYPE_MONTHLY) {
        $months = '';
        $month = zbx_num2bitstr($timeperiod['month'], true);
        $length = zbx_strlen($month);
        for ($i = 0; $i < $length; $i++) {
            if ($month[$i] == 1) {
                if (!zbx_empty($months)) {
                    $months .= ', ';
                }
                $months .= getMonthCaption($i + 1);
            }
        }
        if ($timeperiod['dayofweek'] > 0) {
            $days = '';
            $dayofweek = zbx_num2bitstr($timeperiod['dayofweek'], true);
            $length = zbx_strlen($dayofweek);
            for ($i = 0; $i < $length; $i++) {
                if ($dayofweek[$i] == 1) {
                    if (!zbx_empty($days)) {
                        $days .= ', ';
                    }
                    $days .= getDayOfWeekCaption($i + 1);
                }
            }
            $every = '';
            switch ($timeperiod['every']) {
                case 1:
                    $every = _('First');
                    break;
                case 2:
                    $every = _('Second');
                    break;
                case 3:
                    $every = _('Third');
                    break;
                case 4:
                    $every = _('Fourth');
                    break;
                case 5:
                    $every = _('Last');
                    break;
            }
            $str .= $every . SPACE . $days . SPACE . _('of every') . SPACE . $months;
        } else {
            $str .= _('day') . SPACE . $timeperiod['day'] . SPACE . _('of every') . SPACE . $months;
        }
    }
    return $str;
}