Pull to refresh

Работа с датой. PHP5.2

Reading time2 min
Views14K
В PHP5.2 для работы с датой/временем появились классы DateTime и DateTimeZone. Вначале на них не обратил внимание, так как привык пользоваться функциями date(), etc. Но потом решил все-таки посмотреть какие возможности реализуют новые классы.

DateTime


Конструктор класса


DateTime DateTime::__construct ([ string $time [, DateTimeZone $timezone ]] )

Конструктор принимает два параметра:
1. Строка в формате принимаемым strtotime(), по умолчанию — «now».
2. Зона для которой будем считать время.

Метод format


string DateTime::format ( string $format )

Возвращает дату в соответствии с указанным форматом.
Аналогично функции date()

Метод modify


void DateTime::modify ( string $modify )

Функция для изменения текущего времени.
Принимает один параметр — строка в формате, принимаемом strtotime()
Например, нужно получить дату, которая будет через неделю:
$date = new DateTime();
echo $date->format( «Y-m-d» ); //2008-07-16
$date->modify( '+1 week' );
echo $date->format( «Y-m-d» ); //2008-07-23

Реализация на php4 была бы такой:
echo date( 'Y-m-d' ); //2008-07-16
echo date( 'Y-m-d', time() + ( 7*24*3600 ) );//2008-07-23

Согласитесь, удобнее…

Метод getOffset


int DateTime::getOffset ( void )

Возвращает различие в секундах между UTC и текущим часовым поясом
$tz = new DateTimeZone( «Etc/GMT+2» );
$time = new DateTime();
$time->setTimezone( $tz );
echo $time->getOffset();//7200


Метод getTimezone


DateTimeZone DateTime::getTimezone ( void )

Возвращает DateTimeZone относящийся к DateTime, или false в случае неудачи

Метод setTimezone


void DateTime::setTimezone ( DateTimeZone $timezone )

Устанавливаем DateTimeZone

Метод setTime


void DateTime::setTime ( int $hour, int $minute [, int $second ] )
Устанавливаем текущее время

Метод setDate


void DateTime::setDate ( int $year, int $month, int $day )

Устанавливаем текущую дату

Метод setISODate


void DateTime::setISODate ( int $year, int $week [, int $day ] )

Устанавливаем текущую iso дату

Вместо заключения


Мое мнение класс DateTime в том виде, в котором он есть сейчас, не на много облегчит жизнь разработчикам,
но может служить хорошим плацдармом для написания дочерних классов под конкретные нужды.
Что касается выбора, что использовать — это индивидуальное дело разработчика

Зы: надоеюсь этот топик был полезен…
Tags:
Hubs:
+36
Comments46

Articles