Заметки за Сентябрь 2014
11 September 2014, 00:22 MSK
Привет, друзья. Потихоньку работаю над блогом. Сегодня появилась возможность подписаться на блог через RSS. Подписывайтесь. :-)
Тэги: блог
10 September 2014, 03:52 MSK
Как вы уже, наверное, успели заметить (см. предыдущий пост), в моем блоге фрагменты исходного кода подсвечиваются согласно синтаксису языков. Для этого я использую небезызвестный скрипт Ивана Сагалаева highlight.js. Оказалось, что этот скрипт не работает в Internet Explorer 8. Пришлось написать следующую обёртку для скрипта:
if (!navigator.userAgent.match(/MSIE [1-8]/ig)) { … }
Таким образом, посетители, использующие IE8, увидят сайт, но у них просто не сработает подсветка синтаксиса.
Тэги: JSwebdev
10 September 2014, 03:17 MSK
Всем привет. Предлагаю довольно простой способ показать посетителю сайта время некоего события с учётом часового пояса посетителя. Способ используется во многих рабочих проектах уже несколько лет.
В качестве примера рассмотрим время создания этой заметки. По Москве — 10 сентября 2014, 03:17. При этом посетитель из Финляндии увидит время 02:17. Проверить это легко — достаточно перевести время на вашем компьютере на час назад.
К сожалению, без помощи джаваскрипта не обойтись — браузеры ничего не сообщают серверу о часовом поясе клиента. И так, в базе данных время этой заметки хранится в виде «2014-09-10 03:17:00» (время на сервере — московское, но это не имеет никакого значения). PHP-скрипт преобразовывает эту строку в таймштамп, а затем в следующий HTML-код:
<span class="fg-time" data-time="xxxxx" data-format="j F Y, H:i">
    9 September 2014, 23:17 GMT
</span>
Здесь xxxxx — это разница между текущим временем и таймштампом. j F Y, H:i — это формат, в котором выводится дата, а внутри тэга span — время по Гринвичу (выведено через PHP-функцию gmdate).
Далее при помощи следующего джаваскрипта (используется jQuery) проходимся по всем таким тэгам и выполняем преобразование:
$('.fg-time').each(function(){
     var time = $(this).data('time'),
          format = $(this).data('format');
     $(this).text(fgDate(format, time));
});
Исходный код функции fgDate, позволяющей красиво оформить дату и время (аналог PHP-функции date) можно скачать из моего github-репозитория.
Таким образом, суть метода заключается в том, чтобы на сервере посчитать разницу между временем события и текущим временем, передать эту разницу клиенту и при помощи джаваскрипта вывести время с учётом часового пояса клиента (для этого нужно вычесть переданную разницу от текущего времени).
Тэги: JSPHPwebdev
9 September 2014, 01:47 MSK
Привет, друзья. Поделюсь полезным лайфхаком.
Если вам нужно перевести какое-то название, имя известного человека или же просто специфичную фразу, которых нет в обычных словарях, то для этого можно использовать... Википедию: вводите название на исходном языке, а далее выбираете язык в разделе «На других языках» (снизу слева). И вуа-ля — получаете точный перевод.
8 September 2014, 22:00 MSK
Всем привет! Это первая запись в этом блоге. Здесь я буду рассказывать про веб-разработку и другие темы, которые интересуют меня в данный момент.
Блог написан с нуля и работает на движке сайтов Figaroo Engine, который я сам написал. Особенностью блога является отсутствие админки как класса — все посты хранятся в моём блокноте в Еверноуте. В ближайшем будущем я добавлю возможность подписаться на блог через RSS, а также возможность оставлять комментарии к заметкам. :-)
Тэги: блог