Как стать автором
Обновить

PHP vs MySQL. У кого время быстрее?

Чулан
Не-не, тут речь не о производительности, а о самых обыкновенных часах =)

Как-то раз увидел в PHP что-то вроде
$date = mysql_result(mysql_query("SELECT CURRENT_TIMESTAMP"), 0, 0);


Кажется, на говнокоде дело было…

Посмеялся и забыл. Потом перелез с винды на убунту и вот вчера произошло нечто интересное =) MySQL и PHP в XAMPP (LAMPP) вернули разное текущее время!

print(date('Y-m-d H:i:s'));
// 2009-06-20 8:00:00

print("\n", mysql_result(mysql_query("SELECT CURRENT_TIMESTAMP"), 0, 0));
// 2009-06-20 15:00:00


т.к. под виндой подобная проблема не наблюдалась, покопался в инете и узнал, что Линух и Винда по разному трактуют системное время. Винда выставляет системное время в соответствии с местным (причем делает она это постоянно при каждой загрузке и синхронизации), а Линукс считает системное время UTC и местное отсчитывает исходя из установленного часового пояса.

Выход 1. Подогнать системное время линукса под локальное


1. Установить время на текущее.

user@server:~$ sudo date -s 12:00

2. Сделать системное время локальным:

user@server:~$ sudo /sbin/hwclock --systohc --localtime

3. Синхронизировать локальное и системное время:

user@server:~$ sudo /sbin/hwclock --hctosys --localtime

4. Перезагрузить компьютер при необходимости. Ну в моем случае, нужно было просто перезагрузить XAMPP/LAMPP

user@server:~$ sudo /opt/lampp/lampp restart

Выход 2. Подогнать часовой пояс для MySQL


Предположительно (т.к. меня удовлетворило первое решение) здесь:
dev.mysql.com/doc/refman/5.1/en/time-zone-support.html

Выход 3. Переехать в Лондон


Но поскольку там есть летнее время, то данное решение работает лишь 6 месяцев в году. А вот у алжирских сисадминов такая проблема никогда, наверное, не возникала =)
Всего голосов 20: ↑10 и ↓10 0
Просмотры 383
Комментарии 11

Преобразование даты в международный формат(UTC). Шаблон для версий XSLT от 1.0

XSLT *
Потребовалось переводить дату в xml файлах из московского времени в международное. Изначально проблема решалась вставкой Java скрипа, но потребовалось сделать используя только встроенные возможности XSLT 1.0.
Сразу предупреждаю комментирующих, версия XSLT 2.0, где есть тип данных Дата, не годится, требуется реализация именно в 1.0.

Скачать пример, шаблон, результат и парсер можно здесь.

Итак, шаги решения задачи:
  • Разбиение исходной даты в нашем формате на составляющие.
  • Определение смещения часового пояса относительно UTC учитывая переход на зимнее/летнее время, для москва летом смещение -4, зимой -3. Переход на летнее время происходит в два часа ночи последнего воскресенья марта, переход на зимнее время в три часа ночи последнего воскресенья октября.
  • Перевод всех частей даты в UTC время
  • Сбор даты в UTC формате.


Подзадачи:
  • Поиск дня недели, используется формула Зеллера
  • Поиск количества дней в месяце
  • Проверка года на високосность


Исходный шаблон даты:
DD.MM.YYYY hh:mm:ss
Подправить XSL под ваш формат можно без проблем, достаточно изменить последовательность разрезания и указать разделители.

Формат UTC даты:
YYYY-MM-DD hh:mm:ss
Подправляется еще проще, при сборе конечной строки.

Если требуется другие значения смещения часового пояса, достаточно исправить их в функции MoscowOffsetTime.

Использование шаблона:
<xsl:call-template name="GetTime">
  <xsl:with-param name="time" select="10.15.2010 14:10:17"></xsl:with-param>
</xsl:call-template>


* This source code was highlighted with Source Code Highlighter.


Посмотреть шаблон
Всего голосов 32: ↑24 и ↓8 +16
Просмотры 12K
Комментарии 13

Зона недопонимания

PostgreSQL *
Перевод
По некоторым причинам, само понятие «времени с часовым поясом» сбивает с толку многих пользователей и разработчиков приложений. Это влечет за собой появление огромного числа шероховатостей в случае когда приложения должны иметь дело с множеством часовых поясов. В конечном итоге разработчики пытаются оформить эту логику в виде специального кода внутри приложения, в результате чего неизбежно получают заслуженный геморрой с обработкой данных.

Вот некоторые распространенные ошибочные причины, которые я слышал, призывающие не использовать тип timestamp with time zone:

  • Я хочу хранить все в формате UTC;
  • Я не хочу получать несколько разных часовых поясов из запроса;
  • Мы используем специальную библиотеку для обработки часовых поясов;
  • Я не хочу тратить дисковое пространство для хранения часового пояса.


Все эти тезисы произрастают из фундаментального непонимания принципов хранения временных данных в базе данных.

Читать дальше →
Всего голосов 45: ↑40 и ↓5 +35
Просмотры 34K
Комментарии 16

Изменение часовых зон в России, Белоруссии и на Украине

Системное администрирование *
Как вы, наверняка, уже слышали, осенью 2011 сразу несколько государств приняли решение об изменении порядка исчисления времени на своей территории, а также об отмене сезонного перехода на летнее время.
В списке этих государств: Россия, Белоруссия, Украина, частично признанные государства: Абхазия и Южная Осетия, а также непризнанное государство Приднестровье. Т.е. во всех часовых поясах этих стран теперь круглый год будет фиксированный сдвиг относительно UTC, без дополнительных сезонных сдвигов.
(Примечание: Украина сначала приняла решение о переходе на время UTC+3 без летнего времени, но потом отменила принятое ранее решение и пока вернулась к прежнему порядку исчисления времени с сезонными переводами часов. Подробности ниже.)

Server clockВ этой статье я опишу суть принятых изменений часовых поясов и опишу техническую сторону вопроса касательно IT-систем (корпоративной инфраструктуры, серверов, рабочих станций, сервисов, приложений и т.п.). Постараюсь ответить на ряд основных вопросов, возникающих в связи с этими изменениями:
— Какие IT-системы может затронуть изменение часовых поясов?
— Какие проблемы это может вызвать?
— Как подготовиться к этому, чтобы по возможности избежать проблем?

Полагаю, многим системным/прикладным администраторам, а также некоторым разработчикам приложений/сервисов, полезно будет ознакомиться с этим материалом. А потом предлагаю всем заинтересованным обсудить и дополнить эту информацию в комментариях.
Для начала немного общей информации...
Всего голосов 263: ↑254 и ↓9 +245
Просмотры 37K
Комментарии 101

Tzdata — глобальная база знаний о часовых поясах

Системное администрирование *
Если нам где-либо (например, в каких-то приложениях) требуется работать не только с универсальным временем UTC, но и с местным временем в различных точках Земли, то здесь встаёт вопрос о необходимости некой базы знаний о том, как вычисляется локальное время относительно UTC в различных регионах мира.

Многие Unix-like системы для хранения информации обо всех мировых часовых поясах используют базу tzdata (она же tz database, она же zoneinfo database, она же Olson database — в честь Артура Олсона, основателя этой базы знаний).

Впервые начал собирать эту базу Артур Дэвид Олсон (Arthur David Olson), позже к этому проекту подключились и другие участники. Сейчас же основным коммитером новой информации в базу tzdata является Пол Эггерт (Paul Eggert), а Артур Олсон сейчас занимается разработкой и поддержкой утилит для работы с локальным временем и данными о часовых поясах (пакет tzcode).

В базе tzdata содержится детальная информация обо всех часовых поясах во всех регионах мира:
— координатная привязка основных населённых пунктов, характеризующих часовой пояс;
— смещение локального времени в различных регионах относительно универсального времени UTC;
— указано, в каких регионах применяется летнее время (DST), насколько оно смещается относительно стандартного, указаны точные даты и время переключения на летнее время и обратно в различных регионах в различные периоды;
— информация о високосных секундах (leap seconds).
Читать дальше →
Всего голосов 74: ↑67 и ↓7 +60
Просмотры 35K
Комментарии 12

30 июня 2012 г. будет на секунду длиннее: 23:59:60

IT-стандарты *
Международная служба вращения Земли уведомляет, что к июню 2012 года добавляется положительная секунда координации. Последовательность будет такой:

30.06.2012 23 ч 59 мин 59 с
30.06.2012 23 ч 59 мин 60 с
01.07.2012 00 ч 00 мин 00 с

Разница между UTC и международным атомным временем:

с 01.01.2009 00 ч UTC до 01.07.2012 00 ч UTC: UTC-TAI = -34 с
01.07.2012 00 ч UTC до дальнейшего уведомления: UTC-TAI = -35 с

Секунды координации с 1972 года добавляются к декабрю или июню, чтобы время UTC не отличалось от UT1 более, чем на 0,9 с.

Дискуссия об отмене секунд координации (по мнению США, они мешают нормальной работе систем связи) отложена до 2015 года.
Всего голосов 84: ↑76 и ↓8 +68
Просмотры 5.1K
Комментарии 153

Victor, Charlie, Victor, Charlie, приём

Сетевые технологии *
Каждый, кто хоть раз устанавливая дату и время на компьютере, видел аббревиатуру UTC, но не все знают откуда на самом деле берётся это время и почему оно так важно.

Идём в ногу со временем
Всего голосов 39: ↑30 и ↓9 +21
Просмотры 24K
Комментарии 27

Технология глобальной спутниковой навигации: какие бывают системы, параметры и функции

Блог компании Promwad Глобальные системы позиционирования *Геоинформационные сервисы *Производство и разработка электроники *


В этой статье мы расскажем про глобальные системы позиционирования, разработанные в США, России, ЕС и Китае; объясним, как поддержка технологий глобальной спутниковой навигации реализована в электронных устройствах, а также опишем ключевые и дополнительные функции современных навигационных приемников.
Читать дальше →
Всего голосов 36: ↑35 и ↓1 +34
Просмотры 64K
Комментарии 14

Графики вклада с учётом часовых зон

GitHub
Перевод
7 марта мы добавили ко графикам вашего вклада учёт часовых зон. GitHub используется повсеместно — и мы хотим, чтобы это отразилось в его возможностях. Если вам довелось работать из Японии, Австралии или Улан-Батора, мы хотим учитывать ваш вклад с вашей точки зрения.

При подсчёте коммитов мы станем учитывать информацию о часовой зоне, присутствующую в метке времени из этих коммитов. Создаваемые во Всемирной Паутине проблемы и запросы на слияние станут использовать часовую зону вашего браузера. Если вы пользуетесь API, то также сможете указать свою часовую зону.

Испортить вашу нынешнюю полосу продуктивной работы мы не хотим, так что учёт часовых зон начнётся только для вклада, совершённого после понедельника 10 марта 2014 года (Temps Universel Coordonné).

Желаем весело провести время (вашей зоны)!
Всего голосов 12: ↑9 и ↓3 +6
Просмотры 5.3K
Комментарии 3

Проблемы времени и часовых поясов в Android и пути их решения

Системное администрирование *
Recovery mode
Из песочницы
Tutorial
Предположим, вы уже давно используете Android, а потому может показаться, что он прекрасно справляется с задачами синхронизации времени – будильники срабатывают вовремя, каких-то явных отклонений времени не наблюдается и т. д. Однако уверены ли вы полностью в том, откуда Android на самом деле получает данные о точном времени и часовых поясах? Если у вас есть хоть какие-то сомнения о том, как это работает — добро пожаловать под кат.

Читать дальше →
Всего голосов 20: ↑15 и ↓5 +10
Просмотры 445K
Комментарии 28

30 июня 2015 г. будет на секунду длиннее

Глобальные системы позиционирования *IT-стандарты *
Международная служба вращения Земли уведомляет, что к июню 2015 года добавляется положительная секунда координации. Последовательность будет такой:

30.06.2015 23 ч 59 мин 59 с
30.06.2015 23 ч 59 мин 60 с
01.07.2015 00 ч 00 мин 00 с

Разница между UTC и международным атомным временем:

с 01.07.2012 00 ч UTC до 01.07.2015 00 ч UTC: UTC-TAI = -35 с
с 01.07.2015 00 ч UTC до дальнейшего уведомления: UTC-TAI = -36 с

Секунды координации с 1972 года добавляются к декабрю или июню, чтобы время UTC не отличалось от UT1 более, чем на 0,9 с.
Читать дальше →
Всего голосов 63: ↑55 и ↓8 +47
Просмотры 55K
Комментарии 56

Прощай, GMT+3:00, здравствуй, GMT+4:00, или в России сдвигаются часовые пояса

Законодательство в IT


Как вы, возможно, уже знаете, Медведев отменил зимнее время, поэтому осенью этого года не мы не будем привычно переводить стрелки часов на час назад.

Но так как «зимнего» времени у нас нет (это не что иное как стандартное, поясное время), а есть только «летнее время» (на которое мы, как обычно, перейдём этой весной), фактически это означает сдвиг всех российских часовых поясов на час вперед. То есть, вместо привычного последнего московского пояса GMT+3 мы будем жить в GMT+4 (в котором раньше мы жили только летом).

В комментариях предлагаю обсудить, какие изменения в программном обеспечении придётся сделать в течение ближайших 8 месяцев, чтобы это учесть.
Читать дальше →
Всего голосов 139: ↑120 и ↓19 +101
Просмотры 53K
Комментарии 251

Крупнейшего производителя авиаэлектроники Rockwell Collins купят за $30 млрд

Блог компании ITI Capital Финансы в IT


Два ведущих игрока на рынке поставщиков авиационного оборудования объявили о заключении сделки, в рамках которой UTC приобретает акции Rockwell Collins за $30 млрд, включая чистый долг компании в размере $7 млрд, сообщает Reuters.

По условиям соглашения UTC заплатит $140 за акцию Rockwell Collins. Из этой суммы будет выплачено по $93,33 наличными и по $46,67 акциями United Technologies Corp. Об интересе UTC к Rockwell Collins на рынке говорили с начала года. За этот период акции производителя подорожали в общей сложности на 40%.

Как рассказали участники сделки, после транзакции объем продаж United Tech может достичь $67-$68 млрд. Для сравнения — у Boeing этот показатель составляет $95 млрд.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 3.8K
Комментарии 2

Заблуждения программистов о Unix-времени

*nix *IT-стандарты *
Перевод
Приношу извинения Патрику МакКензи.

Вчера Дэнни поинтересовался любопытными фактами о Unix-времени, а я вспомнил, что иногда оно работает совершенно неинтуитивно.

Вот эти три факта кажутся в высшей степени разумными и логичными, не так ли?

  1. Время Unix — это количество секунд с 1 января 1970 года 00:00:00 UTC.
  2. Если подождать ровно одну секунду, то время Unix изменится ровно на одну секунду.
  3. Время Unix никогда не двигается назад.

Всё это неправда.
Читать дальше →
Всего голосов 98: ↑90 и ↓8 +82
Просмотры 52K
Комментарии 134

Локальное время и дата рождения или зачем UTC

Программирование *

В мире программирования уже давно введены стандарты мирового и локального времени и процедуры преобразования между ними. Однако для обычных людей это все ново и они не обращают на это внимание. В результате дата рождения и другие даты могу “съехать” относительно того, что у вас записано в паспорте. Поэтому необходимо более щепетильно подходить к данным времени перед внесением их, особенно в блокчейн. Давайте разберемся.

Читать далее
Всего голосов 18: ↑5 и ↓13 -8
Просмотры 3.9K
Комментарии 11