Появилась задача определить разницу в датах с указанием единиц времени. Причем:
- даты могут быть две или одна (с текущего момента до ...)
- язык единиц времени должен выбираться пользователем
Решение вылилось в класс TimeDiff на php. Пример и ссылки дальше.
Описание класса TimeDiff.
Конструктор класса
public function __construct($date1,$date2=false, $curlang='ru') {}
Где:
- $data1 - дата от/до которой ведется отсчет
- $data2 - вторая дата для указания конкретного диапазона. Если $data2==false, то эта переменная примет значения текущего времени
- $curlang - язык единиц времени (пока доступны ru и en)
Время считается "по модулю" - независимо от того, какая из двух дат больше, результат всегда будет положительным.
Функция TimeDiff
public function TimeDiff($filter='dhis',$nozerro=false){}
Где:
- $filter - фильтр единиц для вывода (d - дни, h - часы, i - минуты, s - секунды)
- $nozerro - определяет показывать ли нулевые значения (false - показывать, true - не показывать)
Пример вызова
-
// русские единицы
-
$text=new timediff('01.01.2009 00:00:00',false, 'ru');
-
'До Нового года осталось: '.$text->TimeDiff('dhis',true);
-
// единица на английском
-
$text=new timediff('01.01.2009 00:00:00',false, 'en');
-
'До Нового года осталось: '.$text->TimeDiff('dhis',true);
-
$text=new timediff('26.12.2008 00:00:00',false, 'ru');
-
// выводим с нулями
-
'До конца этого дня : '.$text->TimeDiff('dhis',false);
-
$text=new timediff('26.12.2008 00:00:00',false, 'ru');
-
// прячем нули и секунды
-
'До конца этого дня : '.$text->TimeDiff('dhi',true);
-
// разницу в конкретных датах
-
$text=new timediff('25.12.2008 10:15:00','25.12.2008 19:00:00', 'ru');
-
'Я работаю сегодня : '.$text->TimeDiff('dhis',true);
Скачать класс можно тут (v0.1).
ЗЫ: если у кого какие вопросы возникнут - пишем в комменты, с удовольствием отвечу.
Популярность: 1%
Связанные записи
Распечатать запись

Оставить комментарий или два