[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: timestamp ниже 70 года
Страницы: 1, 2, 3, 4, 5, 6, 7
linker
zelenin
Равен отрицательному значению, по-моему это же очевидно.

_____________
Gear Framework
Gear Framework на Github
zelenin
Цитата (linker @ 31.01.2014 - 09:45)
zelenin
Равен отрицательному значению, по-моему это же очевидно.

очевидно. И теперь мы снова возвращаемся к моему вопросу: в чем проблема хрангить unix timestamp ранее 1970 года?
twin
И теперь снов возвращаемся к ответу. Да просто потому, что до 1970 года меток unix timestamp просто не существует. Что именно хранить?

Вопрос с родни: а в чем проблема написать биографию Джастина Бибера за 1857 год?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
zelenin, это проблема с мозгом у тех для кого это не проблема.


_____________
Стимулятор ~yoomoney - 41001303250491
linker
zelenin
Во-первых, мускул в поле типа TIMESTAMP не даст засунуть дату меньше чем 1970-01-01 00:00:00

_____________
Gear Framework
Gear Framework на Github
zelenin
Цитата (twin @ 31.01.2014 - 10:33)
И теперь снов возвращаемся к ответу. Да просто потому, что до 1970 года меток unix timestamp просто не существует. Что именно хранить?

Вопрос с родни: а в чем проблема написать биографию Джастина Бибера за 1857 год?

выше ответили, что unix timestamp до 1970 отрицателен и существует. Так как он тогда может не существовать?
zelenin
Цитата (Valick @ 31.01.2014 - 10:44)
zelenin, это проблема с мозгом у тех для кого это не проблема.

для меня это не проблема, но проблем с мозгом нету. Неверное утверждение.
zelenin
Цитата (linker @ 31.01.2014 - 10:57)
zelenin
Во-первых, мускул в поле типа TIMESTAMP не даст засунуть дату меньше чем 1970-01-01 00:00:00

если речь идет о mysql timestamp, а не unix timestamp с типом integer.
phpшник
Корректным диапазоном временных меток обычно являются даты с 13 декабря 1901 20:45:54 UTC по 19 января 2038 03:14:07 UTC. (Эти даты соответствуют минимальному и максимальному значению 32-битового знакового целого). Кроме того, не все платформы поддерживают отрицательные метки времени, поэтому поддерживаемый диапазон дат может быть ограничен Эпохой Unix. Это означает, что даты ранее 1 января 1970 г. не будут работать в Windows, некоторых дистрибутивах Linux и нескольких других операционных системах. Тем не менее, в версиях PHP 5.1 и старше это ограничено было снято.

В 64-битных версиях PHP корректный диапазон временных меток фактически бесконечен, так как 64 битов хватит для представления приблизительно 293 миллиарда лет в обоих направлениях.
killer8080
Цитата (linker @ 31.01.2014 - 07:24)
и оно работает честно, ибо присоединение -01-01 и -12-31 некорректно.

возможно я не правильно понял условие задачи
Цитата (phpшник @ 30.01.2014 - 15:18)
так проще вычислять возраст по требованию, то есть мне надо будет вывести людей
возраста между 30 и 45, запрос к базе намного проще получается, чем всех извлекать, потом анализировать

запрос с sub выведет тех у кого дата рождения входит в диапазон, т.е условие эквивалентно вида
... where `date` between '1969-01-31' and '1984-01-31'

соответственно даты с 1 по 30 января 69-го года в условие не попадают, хотя им 45 лет. Так же в условие не попадут те кто родился в 84-м после 31 января, хотя может это и не нужно?
linker
killer8080
Тут логика такая, нужно получить данные, которые попадают в возрастные ограничения от 30 до 45 лет ОТНОСИТЕЛЬНО ТЕКУЩЕЙ ДАТЫ, т.е. в твой набор попадут те, которые соответствуют '1969-01-31' and '1984-01-31', но которым на сегодняшний момент ещё не исполнилось 30 или уже исполнилось 46. Т.е. если сегодня 31.01.2014, то в набор должны попасть только те, кто родился между 31.01.1969 и 31.0.1.1984

P.S. может это я неправильно понял вопроса ТС?

_____________
Gear Framework
Gear Framework на Github
twin
phpшник
Цитата
В 64-битных версиях PHP корректный диапазон временных меток фактически бесконечен, так как 64 битов хватит для представления приблизительно 293 миллиарда лет в обоих направлениях.
Это не unix timestamp. Вычислить любую метку можно и руками, только это будет результат вычисления, а не метка unix timestamp.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
killer8080
linker
я понял так, что под условие 45 -30 лет должны попасть все у кого год рождения с 69 по 84
Иначе кто родился 31 января 69 в условие попал, а 30 января уже нет, хотя им обоим 45 лет. Спорить не буду, может я не правильно понимаю что требуется. Пусть ТС уточнит что именно ему нужно.
linker
killer8080
Ну да, я допетрил уже, что возраст и дата рождения немного разные вещи. Пересмотрел вопрос ТС и у него промелькнуло и дата рождения и возраст. Поэтому пущай как ему нужно, то и выбирает.

_____________
Gear Framework
Gear Framework на Github
phpшник
в общем, mktime() возвращает ниже 70 года отрицательный timestamp, а msql его не понимает. также и date("Y-n-j",-284061600) == 1960-12-31 вычисляет. Так что я рад что так получается. Теперь я храню отрицательный timestamp в БД под типом integer. ура так даже проще и меньше кода
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.