UTC не является отличным выбором для целых календарных дат, таких как дата рождения.
Мой день рождения: 1976-08-27
. Не 1976-08-27T00:00:00Z
.
Я в настоящее время живу в часовом поясе США.
Мой следующий день рождения от 2016-08-27T00:00:00-07:00
до 2016-08-28T00:00:00-07:00
В UTC, что не эквивалентно 2016-08-27T07:00:00Z
до 2016-08-28T07:00:00Z
Конечно, если я перееду в другой часовой пояс до этого, я Я буду отмечать свой день рождения на совершенно другом наборе диапазонов.
Если я перееду в Японию, то мой день рождения придет на 16 часов раньше.
Мой следующий день рождения не будет от 2016-08-27T00:00:00+09:00
до 2016-08-28T00:00:00+09:00
В UTC, что не эквивалентно 2016-08-26T15:00:00Z
до 2016-08-27T15:00:00Z
Таким образом, дата рождения (или юбилейной даты, даты проката, и т. д.) должны храниться как простой год, месяц и день. Нет времени и нет часового пояса.
В MySQL используйте тип DATE
. Не используйте DATETIME
, TIMESTAMP
или целое число, содержащее время Unix.
также считают, что оценка возраста зависит от часового пояса, в том числе Местонахождение пользователя сейчас не, а не при появлении часового пояса, в котором они родились. Если местоположение человека неизвестно для искателя - тогда это актуальный часовой пояс. «Сколько вам лет?» не обязательно то же самое, что «Сколько вам лет?».
Конечно, где вы живете, на самом деле вы не станете старше или моложе, но это зависит от того, как мы, люди, оцениваем возраст в годах на основе наших местных календарей. Если бы вы спросили: «Сколько минут старый я?» тогда ответ зависит от моментального момента времени, в котором вы родились, - который может быть измерен в формате UTC, но обычно он предоставляется как местное время и часовой пояс. Однако в общем случае, как правило, этот уровень детализации не собирается.
«Но дата рождения не имеет ничего общего с тем, где кто-то живет, верно?» -Верный. У вас был другой вопрос? – dan08
Конечно, дата рождения связана с тем, где родился. Лицо, родившееся в 1am 01.02.2015 в Париже, родилось бы 31.01.2015, если его мать поймала самолет в Нью-Йорк. – SWeko
Дата рождения связана с родиной - но * возраст * связан с тем, где живет один * в настоящее время *. См. Мой ответ. –