@ndrey
Новичок
На самом деле никакого ужаса нет. Хранить дату в TIMESTAMP и перекладывать рутину на мускул может и лучше, но не всегда подходит.Автор оригинала: zerkms
какой ужас. у меня даты уже в UTC в mysql и всю рутину за меня делает mysql.
На самом деле никакого ужаса нет. Хранить дату в TIMESTAMP и перекладывать рутину на мускул может и лучше, но не всегда подходит.Автор оригинала: zerkms
какой ужас. у меня даты уже в UTC в mysql и всю рутину за меня делает mysql.
Версию сменить и будет_массив более удобныйправда с обходом дурацкого массива![]()
не понимаю для случая, когда может быть несколько клиентов с разными поясамиАвтор оригинала: zerkms
pilot911
я сохраняю в mysql timestamp.
выше пролистай, я в первом посте описал всё ведь - этот вариант лишён всех недостатков, разве что DST дурацкий %)
TIMESTAMP values are converted from the current time zone to UTC for storage, and converted back from UTC to the current time zone for retrieval.
mysql> select count(*) from mysql.time_zone;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.01 sec)
да.. есть такоеАвтор оригинала: zerkms
pilot911
вполне вероятно, вот только проблема в том, что по дефолту mysql.time_zone не заполнена нигде...
и решение получается очень настройкозависимое, хотя и сильно более красивое.Код:mysql> select count(*) from mysql.time_zone; +----------+ | count(*) | +----------+ | 0 | +----------+ 1 row in set (0.01 sec)
mysql> set time_zone = 'Asia/Vladivostok';
Query OK, 0 rows affected (0.01 sec)
mysql> select unix_timestamp('2010-03-28 01:00:00');
+---------------------------------------+
| unix_timestamp('2010-03-28 01:00:00') |
+---------------------------------------+
| 1269702024 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select unix_timestamp('2010-03-28 02:00:00');
+---------------------------------------+
| unix_timestamp('2010-03-28 02:00:00') |
+---------------------------------------+
| 1269705624 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select unix_timestamp('2010-03-28 03:00:00');
+---------------------------------------+
| unix_timestamp('2010-03-28 03:00:00') |
+---------------------------------------+
| 1269705624 |
+---------------------------------------+
1 row in set (0.00 sec)