что такое unix time

Unix время и Unix Timestamp (MySQL, PHP, JavaScript)

Почему Unix время начинается с 1 января 1970 года

Все дело в том, что Unix время начинает отсчет эпохи Unix, с выпуска первой UNIX системы. Первая система подобного рода была создана в 1969 году, поэтому точкой отсчета времени разработчики приняли дату с 1 января 1970 года в полночь по UTC (Всемирное координированное время).

Давайте разберемсяс тем, для чего нужны Unix время и Unix Timestamp, а также дадим им четкие понятия.

Unix время – это текущее количество секунд прошедших с 1 января 1970 года.

Unix Timestamp – это метка времени, которая представляет собой последовательность символов, отражающих количество секунд, прошедших с 1 января 1970 года.

Попробую привести пример, для разъяснения разницы этих двух понятий.

На время написания мной данного поста, Unix время было равно 1346765877.

Откровенно говоря, особого смысла разделять два понятия, на мой взгляд, нет, но все же полезно иметь представление о том, что из-себя представляет Unix Time, а также полезно понимать, что количество максимально возможных секунд прошедших с 1970 года, имеет предел!

Конец эпохи Unix придёт в 2038 году

Факт: максимальным двоичным числом в 32 битных системах является число 01111111 11111111 11111111 11111111, переведя его в десятичную систему, мы получим число 2147483647.

19 января 2038 года в 03:14:08 настанет момент, когда количество секунд прошедших с начала эры Unix, превысит максимальное, доступное в 32 битной системе, число = 2147483647. При переполнении разряда, произойдет сброс даты.

Проверить эту теорию на наглядном примере очень просто:

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

Именно такое кольцевание дат произойдет с 19 января 2038 года на всех системах использующих 32 битную архитектуру.

На самом деле не стоит печалиться, ведь разработчики вычислительных систем все больше внедряют 64 битные архитектуры в повсеместное использование. Будем верить в то, что они успеют к 2038 году.

Теперь поговорим об использовании unix timestamp в php, mysql и даже в javascript.

Работа с unix timestamp

Очень важным моментом, при работе с unix timestamp в php или mysql, является необходимость четкого понимать плюсы и минусы такого формата даты.

Например, TIMESTAMP не получится использовать для задания исторических событий или событий далекого будущего. Весь набор дат ограничен периодом с 1970 по начало 2038 года. Если задать дату, выходящую за рамки 2038, она будет не правильно интерпретирована 32 битной системой.

Осознав это ограничение, напрашивается логический вопрос: «Зачем нужно заморачиваться с представлением даты в секундах?«

Когда следует использовать Unix Timestamp

Для представления времени в обычной для нас системе его измерения, требуется 8 байт, а для unix timestamp вдвое меньше – 4 байта.

Экономия объема данных, на мой взгляд, основной и неоспоримый плюс в использовании Unix Time.

Кроме того есть ряд полезных нюансов доступных при работе с UNIX timestamp в mysql. А поскольку вся информация должна храниться на сервере баз данных, и он в свою очередь имеет ряд преимуществ, при работе с метками Unix времени, то выбор в сторону unix timestamp можно корректно обосновать следующими положениями.

В MySQL предусмотрен соответствующий тип данных Timestamp для работы с форматом unix-времени, установив который мы сразу получаем полезное преимущество, перед стандартными форматами DATE и DATETIME. Преимущество заключается в том, что выполняя операцию добавления новой записи в таблицу, столбец с этим типом данных заполняется автоматически. А это значит, что мы можем сэкономить не только на объеме данных, но и на процессорном времени веб сервера.

Для подкрепления слова делом поставим такую задачу: при регистрации нового пользователя в системе, нужно заносить дату его добавления в базу данных.

Если тип поля хранящего дату в таблице – DATETIME, то запрос из PHP скрипта будет выглядеть примерно так:

В случае, когда поле date имеет тип TIMESTAMP запрос будет таким:

Источник

UNIX-время

UNIX-время (англ. Unix time ) или POSIX-время — система описания моментов во времени, принятая в UNIX и других POSIX-совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (четверг); время с этого момента называют «эрой UNIX» (англ. Unix Epoch ).

Время UNIX согласуется с UTC — в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются, то есть високосные секунды не учитываются.

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

В программах для хранения UNIX-времени используется целочисленный знаковый тип. Знаковость упрощает вычисление разницы в секундах между двумя моментами времени, которая может быть отрицательной. 32-битные числа со знаком могут ссылаться на моменты времени от 1901-12-13 20:45:52 до 2038-01-19 03:14:07 включительно.

Читайте также:  что такое татуаж бровей и как его делают

«Юбилейные» значения

Время Количество секунд
9 сентября 2001 года, 01:46:40 UTC 1 000 000 000 (1 гигасекунда)
10 января 2004 года, 13:37:04 UTC 1 073 741 824=2 30 (1 гибисекунда)
18 марта 2005 года, 01:58:31 UTC 1 111 111 111
13 февраля 2009 года, 23:31:30 UTC 1 234 567 890

Проблема 2038

См. также

Полезное

Смотреть что такое «UNIX-время» в других словарях:

Время (UNIX) — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

Время UNIX — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

Unix time — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

UNIX time — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

UNIX timestamp — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

Unix timestamp — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

Время (ЮНИКС) — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

Время (Юникс) — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

Время POSIX — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия

Время (значения) — Текущее время: 14:37 UTC. Время: В Викисловаре есть статья «время» Время одно из основных понятий физики и философии … Википедия

Источник

Unix time конвертер (Конвертер времени Unix онлайн)

Обычная дата(Human readable time) Секунды
1 минута 60 секунд
1 час 3600 секунд
1 день 86400 секунд
1 неделя 604800 секунд
1 месяц (30.44 дней) 2629743 секунд
1 год (365.24 дней) 31556926 секунд

Конвертивание эпохи Unix в человекопонятную дату(human readable date)

Unix дата начала и конца года, месяца или дня

Перевод секунд в дни, часы и минуты

Как получить Unix время в.

Конвертирование даты в Unix время в.

Конвертирование Unix времеми в понятную дату(human readable date).

Для чего нужен инструмент «Unixtime конвертер»?

Данный инструмент, в первую очередь, будет полезен веб-мастерам, которые постоянно имеют дело с большими объемами дат или часто в своей работе обращаются к их элементам. С помощью инструмента «Unixtime конвертер» можно легко конвертировать Unix время в понятную для пользователя дату (и наоборот), узнать текущее Unix epoch время, а также получить Unix время в различных языках программирования, СУБД и операционных системах.

Что такое Unix время?

Эра Unix (Unix epoch) началась в ночь с 31 декабря 1969 года на 1 января 1970 года. Именно эту дату взяли за точку отсчета «компьютерного» времени, которое исчисляется в секундах и занимает очень мало места на диске – всего 4 или 8 байт. С помощью такого способа кодирования программисты могут «спрятать» любую дату в одно число, и легко конвертировать его обратно в понятный пользователям формат.

Unix время (еще его называют Unix time или POSIX time) удобно использовать в различных операционных системах и языках программирования, так как оно отображается в виде одной величины, а не определенного количества полей, занимающих место. К тому же, UNIX time полностью соответствует стандарту UTC (в том числе и в високосных годах) – в таком случае соответствующие значения секунд просто повторяются.

Читайте также:  что должен делать стропальщик перед началом работы

Пару слов о терминах.

Итак, Unix-временем (или POSIX-временем) считается количество секунд, которые прошли с полуночи 1 января 1970 года до настоящего времени.

Unix Timestamp (временная метка) – это «зафиксированное» время, иными словами – конкретная дата, запечатленная в числе.

UTC (Universal Coordinated Time) – это Всемирное координированное время, которое «фиксируется» на нулевом меридиане, и от которого ведется отсчет географических часовых поясов.

Насколько «долговечна» данная система?

Всего лишь через пару десятков лет, а именно 19 января 2038 года в 03:14:08 по UTC Unix time достигнет значения 2147483648, и компьютерные системы могут интерпретировать это число как отрицательное. Ключ к решению данной проблемы лежит в использовании 64-битной (вместо 32-битной) переменной для хранения времени. В таком случае, запаса числовых значений Unix time хватит человечеству еще на 292 миллиарда лет. Неплохо, правда?

Unix время – одно для всех

Если вы живете в Лондоне или Сан-Франциско, а ваши друзья – в Москве, то «сверить часы» можно по Unix time: эта система в данный момент времени едина для всего мира. Естественно, если время на серверах выставлено правильно. А с помощью инструмента «Unixtime конвертер» такая конвертация займет у вас доли секунды.

Источник

Что такое время Unix и когда была эта эпоха?

Время Unix – это система, которую компьютеры используют для измерения времени. Но как работает это время и что такое «эпоха Unix»?

Почему в Unix есть собственное понятие времени? Какая эпоха и в чем проблема Y2038?

Время Unix – это средство представления определенной даты и времени, используемое Linux, macOS и многими другими совместимыми системами. Он настолько распространен, что вы, вероятно, используете его, даже не подозревая об этом. Однако, как только вы поймете время Unix, вы заметите его во многих контекстах, а несколько предоставленных нами инструментов, могут помочь вам в работе со временем Unix.

Какова цель Unix Time?

Время Unix – это количество секунд, прошедших с фиксированной даты и времени. Это формат даты / времени (или отметки времени), который отличается от привычных нам удобочитаемых дат и времени. Это чисто из соображений эффективности. Для хранения одного числа, представляющего секунды, требуется намного меньше места, чем для хранения отдельных значений года, месяца, часа и т. д.

Конечно, говоря современным языком, разница в пространстве не так уж и велика. Но учтите, что Unix возник в конце 1960-х, когда доступное хранилище было намного меньше. Также часто используются временные метки, поэтому их хранилище увеличивается. Например, с каждым файлом связаны три метки времени.

Формат практически невозможно перевести в уме, если вы не гений математики. Но он по-прежнему имеет некоторые преимущества перед более читаемыми альтернативами, такими как среда, 21 октября 2015 г., 07:28:00 по Гринвичу. Вы можете легко и быстро заказать две метки времени Unix. Также обычно быстрее определить разницу между двумя отметками времени. Это особенно верно для дат, близких друг к другу, например, в соседние дни.

Об эпохе

Итак, время Unix – это общее количество секунд с определенного момента времени. Но что это за момент времени? Это 00:00:00 UTC на 1 января 1970 года. Это часто называют эпохой Unix. Программисты выбрали эту дату для эпохи из соображений удобства, поскольку это была ближайшая круглая дата, когда они изобрели время Unix.

Возможно, вы видели эту дату, когда что-то пошло не так. Это явно ошибка, но она выглядит очень странно, когда она приводит к дате до того времени, когда многие из нас родились! Впрочем, это вполне понятно, если знать о времени Unix. Если какая-либо система пытается отобразить метку времени, которая не имеет никакого значения, она часто преобразуется в 0 и приводит к точной дате эпохи.

Формат данных времени Unix

Собственно говоря, его нет. Исходный тип данных был 32-битным целым числом, и это часто остается так, даже в гораздо более мощных системах.

Этот тип данных позволяет значению хранить в общей сложности 2^32 (2 в 32-ой степени) секунды, что составляет чуть более 136 лет. Это значение обычно подписано, что означает, что оно может быть отрицательным или положительным. Таким образом, обычно это 68 лет по обе стороны от эпохи, то есть с 1902 по 2038 годы.

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

Но это не значит, что в этом ограниченном промежутке времени нет проблем…

Проблема 2038 года

Ошибка 2000 года, одна из худших ошибок программирования в истории, затронула компьютерные системы, которые хранят годы в виде двузначных значений. Когда наступил 2000 год, такие системы относились к нему так, как будто это был 1900 год. В действительности это было не так катастрофично, как предполагалось, главным образом потому, что многие люди заранее потратили много времени и усилий, готовясь к нему.

Читайте также:  что такое nano краска

Если бы вы обратили внимание на предыдущий раздел, вы могли бы заметить аналогичную проблему, которая может повлиять на время Unix. Что ж, у Unix time есть собственная проблема с данными: проблема Y2k38. (Это часто называют проблемой, а не ошибкой; возможно, мы стали более оптимистичными с 2000 года!) Когда время Unix буквально истечет в 2038 году, системы будут рассматривать новые даты как 1902 или 1970.

По крайней мере, эта проблема нас не коснется ровно в полночь под Новый год. Последняя секунда 32-битного времени Unix приходится на 19 марта. В конечном итоге мы, скорее всего, модернизируем большинство систем к 2038 году, или к тому времени они все равно устареют.

Некоторые полезные ресурсы по меткам времени

Сайт Epoch Converter, возможно, является наиболее полным доступным конвертером временных меток. Он начинается с отображения текущего времени Unix – в реальном времени – и добавляет к этому почти все мыслимые функции. Его основное использование – для преобразования между отметками времени и датами, удобочитаемыми человеком, в обоих направлениях.

Dan’s Tools – это огромная коллекция полезных веб-приложений, одно из которых – конвертер временных меток, он более прост в использовании.

Time.is представляет еще один, еще более минималистичный вид. Он показывает время в нескольких форматах, включая время Unix. Он включает в себя текущее время в заголовке страницы, что полезно.

Использование Unix Time с инструментами командной строки

В Linux и macOS программа даты является основной утилитой для работы с датой и временем, включая временные метки Unix. Вызывается без каких-либо аргументов, возвращает текущую дату / время в удобочитаемом формате:

Если вам нужна текущая дата / время во времени Unix, используйте аргумент +% s :

Вы можете преобразовать дату, удобочитаемую человеком, в метку времени, используя флаг -d, если ваша версия даты поддерживает его. Большинство версий Linux по умолчанию должны:

В macOS дата – это другая программа, для которой требуется другой набор флагов:

Идя в другом направлении, вы можете преобразовать временную метку Unix, используя флаг -r:

Некоторые другие программы используют формат %s для работы со временем Unix. Например, если вы хотите показать дату изменения файла во времени Unix, с версией ls для Linux, вы можете использовать следующее:

Как использовать Unix Time в языках программирования

В PHP есть функция time(), которая возвращает текущую временную метку Unix. Его функция date() принимает метку времени в качестве второго аргумента:

JavaScript подходит к вещам интересным образом. У него есть метод Date.now() для получения количества миллисекунд с эпохи Unix. Конечно, вы можете разделить это на 1000 и округлить результат, чтобы получить эквивалентное время Unix в секундах:

Понимание времени Unix

Такие понятия, как эпоха и временные метки, являются важной частью начала работы с Linux. Время Unix – это простая концепция, которая возникает во многих местах. Как только вы это поймете, вы можете найти его весьма полезным, например, при вычислении разницы во времени. Вы также можете распознать, когда это может быть причиной определенных ошибок.

Источник

Unix Timestamp конвертер

Что такое Unix время?

Unix-время (англ. Unix time, также POSIX-время или Unix epoch или Unix time или Unix timestamp) — система описания моментов во времени, принятая в Unix и других POSIX-совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (четверг); время с этого момента называют «эрой Unix» (англ. Unix Epoch).

Период времени Секунды
1 минута 60 секунд
1 час 3600 секунд
1 день 86400 секунд
1 неделя 604800 секунд
1 месяц (30.44 дней) 2629743 секунд
1 год (365.24 дня) 31556926 секунд

Unix Timestamp (временная метка) – это «зафиксированное» время, конкретная дата, запечатленная в числе c точностью до секунды.

Границы Unix времени

В момент времени 00:00:00 UTC 1 января 1970 года (четверг) Unix-время равно нулю. Начиная с этого времени, число возрастает на определённое количество в день. Таким образом, к примеру, 16 сентября 2004 года в 00:00:00, спустя 12677 дней после начала отсчета Unix-времени, время будет представлено числом 12677 × 86400 = 1095292800. Расчеты могут быть также произведены в обратном направлении используя отрицательные числа. К примеру, дата 4 октября 1957 года 00:00:00, а это 4472 дня до начала отсчета представлена в Unix-времени числом −4472 × 86400 = −386380800

В программах для хранения Unix-времени используется целочисленный знаковый тип. 32-битные числа со знаком могут ссылаться на моменты времени от пятницы 13 декабря 1901 года 20:45:52 до вторника 19 января 2038 года 03:14:07 включительно.

Источник

Строительный портал