Локальное время в MySQL отличается от времени в PHP
Начинаю понимать почему многие разработчики забивают на тип DATETIME в MySQL и используют вместо него целочисленные поля:
$date = gmmktime(0,0,0,1,1,2010); //2010-01-01 00:00:00; DB::execute("insert into messages SET date_created=from_unixtime(?)",$date); $id = DB::getLastID(); $r = DB::execute("select date_created from messages where message_id=?",$id); print $r->fields[0]; //2010-01-01 03:00:00
все функции для работы с датой используют локальное время MySQL сервера, но так как они могут не совпадать с локальным временем в PHP то можно получить довольно интересные баги...
Оказывается для MySQL нужно выставлять зону отдельно.
DB::execute("SET time_zone='".Config::$mysql_timezone."'");
причем, строковые значения вида 'America/New_York' для зоны дают странные результаты - почемуто у меня получилось расхождение в 34 секунды c PHP, возможно связано с тем, что MySQL высчитывает даты с использованием leap seconds c в PHP просто прибавляет или вычитает часовую разницу, поэтому решил, что лучше использоватать числовые зоны, типа SET time_zone='-5:00'.
Как играют в хоккей настоящие мужчины
Не удержался...
Получаем ссылку на flv с YouTube
1. Открываем страницу на YouTube, например: http://www.youtube.com/watch?v=wacfZtY5uBk&feature=popular
2. Смотрим в исходный код, находим строчку вида: "t": "vjVQa1PpcFOnL1f--Szqe1o-3F_rYFR6nvcn2HqUqv8%3D" и строчку вида: "video_id": "wacfZtY5uBk"
3. параметры "t" и video_id используем чтобы получить финальный адрес ролика: http://www.youtube.com/get_video.php?t=[t]&video_id=[video_id]
в нашем случае это: http://www.youtube.com/get_video.php?t=vjVQa1PpcFOnL1f--Szqe1o-3F_rYFR6nvcn2HqUqv8%3D&video_id=wacfZtY5uBk
Рецепт взят отсюда.
ColorPicker
Выложил на ztools.org компонент для выбора цвета, по моему, получилось неплохо...
Компонент представляет собой RGB палитру, наподобие той, что используется в Photoshop - на мой взгляд, так выбирать цвет удобнее всего, хотя, есть задумка сделать еще несколько оригинальных колорпикеров.