Comments 46
*в сторону* Эх, а вот бы весь PHP стал объектно-ориентированным.
все в этом направлении и двигается.
считаю появление spl подтверждением этого...
В таком случае он потеряет часть своих приверженцев. Довольно существенную часть. Насчёт даты и времени для вывода текущей даты мне всё же нравится больше date('d-m-Y')
как писать - личное дело разработчка. Тем более процедурный синтаксис никто выбрасывать не собирался
Про метод modify, первое или второе удобнее? С чем соглашаться? :)
> Реализация на php4 была бы такой:
>
> echo date( 'Y-m-d' ); //2008-07-16
> echo date( 'Y-m-d', time() + ( 7*24*3600 ) );//2008-07-23

Или такой

echo date('Y-m-d', strtotime("+1 week"));

На мой взгляд - ничего нового, кроме как того, что все это классом оформлено.
это плохой пример, в DateTime можно не просто текущий time(), а любую дату отмодифицировать. Что удобно.
а что мешает в strtotime передать вторым параметром любую дату? ИМХО всего лишь классовая обертка, а что использовать решать уже конкретно разработчику)
UFO landed and left these words here
Так это ж сам php.net зачем-то географию наводит. Странно это — у гугла вон скока датацентров, а урлы он не портит.
ммм... хм... а что здесь есть того, чего нету в мануале и чего не найти там с первого клика?
я, например, уже давно привык пользоваться date() и компанией - потому даже в мыслях небыло искать что-то другое.
в мануале всё есть - это да. но просто не каждый в него полезет искать что-нибудь новое вместо привычных функций.
ок, а зачем надо было искать что-то, кроме привычных функций, если объектная реализация даты не дает ничего нового? :)
объектная реализация даты дает возможность сделать:
class MyDate extends DateTime {}
О чем в топике нету ни слова :)
К тому же от такого наследования особой пользы нет - операторы в php перегружать нельзя и следовательно за неимением встроенной реализации нельзя сделать так:
$t1 = new DateTime('14:15');
$t2 = new DateTime('0:15');
$t3 = $t1 + $t2;
О чем в топике нету ни слова :)

а развет то, что это класс не значит, что его можно наследовать?
но можно сделать так:
class MyDate extends DateTime {
public function plus( MyDate $arg ) {}
}
Там этого класса нет, то то и оно. Только в релиз-нотах PHP5.2 упоминание.
По тому, что:
With the advent of PHP 5.2.x, there are object representations of the date and timezone, named DateTime and DateTimeZone respectively. The methods map to existing procedural date functions.
Согласен, на если посмотреть ChangeLog - вы увидите, что в ветке 5.2 было исправлено несколько багов связанных с этим классом
ну не сказал бы что так удобнее лично мне - наверное дело привычки просто...
интересно его полностью погоняли на тестах ?? помниться когда zend framework заимплементил такую штуквино то при убирании одного дня от числа допустим 01.08.2007 получалось не 31.07.2008 а все тоже 01.08.2008 :)
Спасибо прикольный топик. Вроде от date() отличается не сильно, но как ни крути с классом гораздо приятней работать.
всё круто, только на офсайте чёт не нашёл описания объектов :(
Топик в топик!
Чем то JavaScript напомнило :)
Коммент написал со второй попытки вышел 3.0.1 Лис! Ура!
Интересно было бы сравнить производительность этих классов с подобной реализцией через date()
Ещё не надоело сравнивать print и echo? Те кто захочет использовать этот класс будут его использовать, а не сравнивать что быстрее методы или функции.
А как насчёт хранения дат вне 32-битных пределов — есть такое в этом классе?
а ещё с 5.1.3 появилась функция date_parse (http://ru2.php.net/manual/ru/function.date-parse.php) которая выдаёт ассоциативный массив с кусками даты
Only those users with full accounts are able to leave comments. Log in, please.