В PHP5.2 для работы с датой/временем появились классы DateTime и DateTimeZone. Вначале на них не обратил внимание, так как привык пользоваться функциями date(), etc. Но потом решил все-таки посмотреть какие возможности реализуют новые классы.
Конструктор принимает два параметра:
1. Строка в формате принимаемым strtotime(), по умолчанию — «now».
2. Зона для которой будем считать время.
Возвращает дату в соответствии с указанным форматом.
Аналогично функции date()
Функция для изменения текущего времени.
Принимает один параметр — строка в формате, принимаемом strtotime()
Например, нужно получить дату, которая будет через неделю:
Реализация на php4 была бы такой:
Согласитесь, удобнее…
Возвращает различие в секундах между UTC и текущим часовым поясом
Возвращает DateTimeZone относящийся к DateTime, или false в случае неудачи
Устанавливаем DateTimeZone
void DateTime::setTime ( int $hour, int $minute [, int $second ] )
Устанавливаем текущее время
Устанавливаем текущую дату
Устанавливаем текущую iso дату
Мое мнение класс DateTime в том виде, в котором он есть сейчас, не на много облегчит жизнь разработчикам,
но может служить хорошим плацдармом для написания дочерних классов под конкретные нужды.
Что касается выбора, что использовать — это индивидуальное дело разработчика
Зы: надоеюсь этот топик был полезен…
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 в том виде, в котором он есть сейчас, не на много облегчит жизнь разработчикам,
но может служить хорошим плацдармом для написания дочерних классов под конкретные нужды.
Что касается выбора, что использовать — это индивидуальное дело разработчика
Зы: надоеюсь этот топик был полезен…