Pull to refresh

Comments 19

Отлично документированный и оформленный код.
Спасибо. Критика кода — это была одна из целей зачем я выкладывал один из своих классов. Примером для меня всегда служил Zend Framework.
Не совсем понятен стиль. Вы то используете сокращенную форму записи условий, то не используете.

public function getTwelveMonths($format)
{
$fromMonth = (12 + ($this->_month — 11))%12 == 0? 1: (12 + ($this->_month — 11))%12;
if ($fromMonth > 1) {
$year = $this->_year — 1;
} else {
$year = $this->_year;
}
Честно говоря не могу дать адекватного ответа почему так. Думаю, что во втором случае будет лучше также применить сокращённую запись, т.к. это условие используется только для определения значения переменной, как и в первом случае.
Раз зенд, тогда бы и расширяли бы Zend_Date.

А то в конструкторе немного индусы потоптались:
$this->_timestamp = strtotime(date('Y-m-d'));

вместо человеческого

$this->_timestamp = time();

Плюс не решен вопрос с зонами/gmt и daylight savings
Zend_Date не стал расширять, т.к. не было опыта работы с данным классом, а проблему надо было решить максимально быстро.

>> $this->_timestamp = strtotime(date('Y-m-d'));
Это было сделано для того, чтобы отсечь время и оставить только дату.
Симпатично конечно. Однако для большенства задач хватает strtotime с нужной строчкой.
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime(«next Thursday»), "\n";
echo strtotime(«last Monday»), "\n";
и т.п. (украдено из мануала)
Угу. А если как в постановке, выборки из БД, то, ссотвественно,
NOW() + INTERVAL 1 DAY
NOW() — INTERVAL 1 MONTH
и т.п.
А как быть при выборке по кварталам?
UFO just landed and posted this here
UFO just landed and posted this here
Вы ничего не путаете. Я догадывался, что можно это реализовать только средствами SQL. Но не нашёл тогда функции. Спасибо, буду знать, что они всё таки есть.
UFO just landed and posted this here
=)) А я-то думал — где же они описаны!
UFO just landed and posted this here
На самом деле я всё понимаю. Вы не поверите я просмотрел мануал первым делом, но как-то не заметил стандартных… наверное я был не в духе тогда…
Часто при разработке с использованием абрстракций на уровне БД и выше (различные фреймворки, CMS, библиотеки классов/функций и т. п.) использование SQL напрямую затруднено. Потом уже, на стадии оптимизации, можно определять текущую БД и для тех из них, которые поддерживают специфические функции/синтаксис писать их нативные выражения (если это обещает дать выигрыш по оптимизируемому параметру), а для тех, которые не поддерживают (частный «кандидат» SQLite) оставлять обработку на уровне PHP.

Можно и наоборот, конечно, сначала «завязаться» на конкретную БД, тот же MySQL 5, а потом реализовывать независимость от реализации БД, но, по личному опыту, обычно приходится много изменений вносить в PHP-код, если слишком сильно «интегрировать» приложение и БД
Спасибо. Не знал, что возможно такое использование данной функции.
const DAY_SECONDS = 86400;

бывает другое кол-во секунд?
Sign up to leave a comment.

Articles