Template Toolkit: Модули: Template::Plugin::Date

Template Toolkit

(русская редакция)

[ Пособия ] [ Руководство ] [ Модули ] [ Библиотеки ] [ Утилиты ] [ Вопросы ] [ Релиз ] [ Perl-ресурсы ] Форум ]
 
Поиск
Template Toolkit | Модули | Template::Plugin::Date

Template::Plugin::Date

[ ◄ Template::Plugin::Datafile ] [ Template::Plugin::Directory ► ]
Плагин для генерации форматированных строк с датами.

Оглавление

ОБЗОР

Индекс ] [ Модули ] [ Наверх ]

    [% USE date %]
    # используем текущее время и формат по умолчанию
    [% date.format %]
    # время в секундах от точки отсчета или в виде строки 'h:m:s d-m-y'
    [% date.format(960973980) %]
    [% date.format('4:20:36 21/12/2000') %]
    # определяем формат
    [% date.format(mytime, '%H:%M:%S') %]
    # определяем локаль
    [% date.format(date.now, '%a %d %b %y', 'en_GB') %]
    # именованные параметры
    [% date.format(mytime, format = '%H:%M:%S') %]
    [% date.format(locale = 'en_GB') %]
    [% date.format(time   = date.now,
		   format = '%H:%M:%S',
                   locale = 'en_GB) %]

    # определяем формат по умолчанию для плагина
    [% USE date(format = '%H:%M:%S', locale = 'de_DE') %]
    [% date.format %]
    ...

ОПИСАНИЕ

Индекс ] [ Модули ] [ Наверх ]

Плагин Date предоставляет простой способ форматировать строки со временем и датой с помощью функции POSIX strftime().

Плагин можно загрузить через знакомую директиву USE.

    [% USE date %]

Это создает объект-плагин с именем по умолчанию 'date'. Другое имя можно определить следующим образом:

    [% USE myname = date %]

Плагин предоставляет метод format(), который принимает значение времени, форматирующую строку и локаль. Все эти параметры не обязательны и имеют в качестве значений по умолчанию текущее системное время, формат '%H:%M:%S %d-%b-%Y' и текущую локаль соответственно. Значения по умолчанию для времени, формата и/или локали можно установить через именованные параметры в директиве USE.

    [% USE date(format = '%a %d-%b-%Y', locale = 'fr_FR') %]

При вызове без параметров метод format() возвращает строку, представляющую текущее системное время, отформатированное с помощью strftime() в соответствие с форматом по умолчанию и локалью по умолчанию (которая может не совпадать с текущей, если установлена через директиву USE).

    [% date.format %]

Плагин позволяет указывать время/дату как количество секунд от точки отсчета, как они возвращаются функцией time().

    File last modified: [% date.format(filemod_time) %]

Также время/дату можно определить как строку вида 'h:m:s d/m/y'. В качестве разделителей можно использовать любые из символов : / - или пробел.

    [% USE day = date(format => '%A', locale => 'en_GB') %]
    [% day.format('4:20:00 9-13-2000') %]  

Вывод:

    Tuesday

Форматирующую строку также можно передавать методу format(), а следом можно указать локаль.

    [% date.format(filemod, '%d-%b-%Y') %]
    [% date.format(filemod, '%d-%b-%Y', 'en_GB') %]

Четвертый параметр позволяет выводить время по Гринвичу, в случае если на входе используется время в секундах с ключевого момента:

    [% date.format(filemod, '%d-%b-%Y', 'en_GB', 1) %]

Учтите что в случае, если локальное время не совпадает с Гринвическим, указание в форматирующем параметре '%Z' (временная зона) приведет к неправильному результату.

Любые или все эти параметры могут быть именованными. Позиционные параметры должны всегда идти по порядку ($time, $format, $locale).

    [% date.format(format => '%H:%M:%S') %]
    [% date.format(time => filemod, format => '%H:%M:%S') %]
    [% date.format(mytime, format => '%H:%M:%S') %]
    [% date.format(mytime, format => '%H:%M:%S', locale => 'fr_FR') %]
    [% date.format(mytime, format => '%H:%M:%S', gmt => 1) %]
    ...etc...

Метод now() возвращает текущее системное время в секундах с ключевого момента.

    [% date.format(date.now, '%A') %]

Метод calc() можно использовать для создания интерфейса к модулю Date::Calc (если он установлен на вашей системе).

    [% calc = date.calc %]
    [% calc.Monday_of_Week(22, 2001).join('/') %]

Метод manip() можно использовать для создания интерфейса к модулю Date::Manip (если он установлен на вашей системе).

    [% manip = date.manip %]
    [% manip.UnixDate("Noon Yesterday","%Y %b %d %H:%M") %]

АВТОРЫ

Индекс ] [ Модули ] [ Наверх ]

Исходный плагин написал Тьерри-Мишель Баррал (Thierry-Michel Barral <kktos@electron-libre.com>).

Энди Уардли (Andy Wardley <abw@cre.canon.co.uk>) выполнил некоторые небольшие правки/расширения, тестовый скрипт и документацию.

Марк Д. Милс (Mark D. Mills <mark@hostile.org>) склонировал Date::Manip из интересного субплагина Date::Calc.

ВЕРСИЯ

Индекс ] [ Модули ] [ Наверх ]

2.72, поставляется в составе Template Toolkit версии 2.14, дата релиза - 4 октября 2004.

АВТОРСКИЕ ПРАВА

Индекс ] [ Модули ] [ Наверх ]

  Copyright (C) 2000 Thierry-Michel Barral, Andy Wardley.

Этот модуль является свободно-распространяемым программным обеспечением; вы можете распространять и/или модифицировать его на тех же условиях, что и Perl.

СМОТРИ ТАКЖЕ

Индекс ] [ Модули ] [ Наверх ]