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

Но это не просто.

Пример. У вас есть сотрудник в Финиксе, которому нужно запланировать отправку электронного письма в понедельник в 8:00 утра в свою компанию в Лос-Анджелесе. Феникс не адаптируется к летнему времени; Лос-Анджелес знает. А что же получатели? Если они получат электронное письмо в понедельник в 8:00 утра в вашем часовом поясе? Или подписчики в Нью-Йорке получат электронную почту в понедельник в 11 утра по восточному стандартному времени?

Как время отображается на вашем компьютере

  • Операционная система (ОС) — ваша операционная система определяет время по часам реального времени (RTC). Он настраивает формат даты в соответствии с вашим регионом, а время — в соответствии с вашим часовым поясом, который обычно определяется местоположением вашего устройства.
    • Форматы даты — Существует несколько распространенных форматов даты, в том числе:
      • Дата по григорианскому календарю (ГГГГ-ММ-ДД), например 08.02.2022.
      • Дата в американском стиле (ММ/ДД/ГГГГ), например, 08.02.2022.
      • Дата в европейском стиле (ДД/ММ/ГГГГ), например 02.08.2022.
    • Часовые пояса — В мире 24 часовых пояса, каждый из которых находится на расстоянии около 15 градусов долготы. Часовые пояса делят мир на регионы с одинаковым стандартным временем, чтобы люди в каждом часовом поясе могли проводить время вместе для повседневных дел.
    • Летнее время – В регионах, где соблюдается летнее время, часы переводят на час вперед весной и на час назад осенью. Это приводит к дополнительному часу дневного света по вечерам в летние месяцы, но это также означает, что солнце встает и заходит на час раньше утром и вечером соответственно в зимние месяцы.
  • Часы реального времени (RTC) — ваш компьютер сохраняет время, даже когда он выключен, с помощью чипа, известного как RTC. Когда чип не используется, небольшая литиевая батарея поддерживает работу чипа (каламбур) и может питать его до десяти лет без подзарядки.
  • Протокол сетевого времени (NTP) – при подключении к Интернету операционные системы используют NTP для синхронизации своих часов с набором серверов времени, в том числе предоставляемых Протокол сетевого времени. По умолчанию Windows синхронизируется с серверами NTP каждые 7 дней, а MacOS — каждый час. NTP поддерживает свое время, используя Всемирное координированное время (UTC). Когда клиент запрашивает текущее время у NTP-сервера, сервер отвечает 64-битным значением, представляющим количество секунд с 1 января 1900 года. 00:00:00 UTC.
  • Всемирное координированное время (UTC) — стандартизированное время, используемое в качестве основы для всего хронометража в мире. Оно основано на Международном атомном времени (IAD), которое измеряет среднее время, прошедшее между двумя конкретными точками на лунной орбите Земли. UTC было впервые введено в 1972 году как преемник TAI и среднего времени по Гринвичу (GMT). UTC поддерживается в пределах 0,9 секунды от шкалы времени TAI, а его точность поддерживается за счет использования атомных часов и других технологий измерения времени.
    • 24 часовых пояса UTC разделены компенсировать категории, где каждое смещение представляет собой соответствующую поправку времени в часах: UTC-12, UTC-11, UTC-10, UTC-9, UTC-8, UTC-7, UTC-6, UTC-5, UTC-4, UTC- 3 , UTC-2, UTC-1, UTC, UTC+1, UTC+2, UTC+3, UTC+4, UTC+5, UTC+6, UTC+7, UTC+8, UTC+9, UTC+ 10 и UTC+11.
ЧИТАТЬ  Как 3 медицинских учреждения используют генеративный искусственный интеллект
  • Международный атомный век (TAI) — стандарт времени, основанный на среднем времени, прошедшем между двумя конкретными точками на лунной орбите Земли. TAI имеет и поддерживает один из наиболее точных и стабильных графиков Международное бюро мер и весов.
  • Атомные часы – это высокоточные хронометры, которые используют естественные вибрации атомов для измерения времени. Наиболее распространенным типом атомных часов являются цезиевые атомные часы, которые используют вибрации атомов цезия для отсчета времени. Точность атомных часов поддерживается стабильностью частоты электромагнитного излучения, испускаемого атомами цезия. Эта частота настолько стабильна, что меняется лишь на доли секунды за тысячи лет. Затем частота электромагнитного излучения сравнивается с частотой кварцевого генератора, используемого для управления счетчиком. Счетчик считает количество циклов электромагнитного излучения, и это число используется для расчета времени. Счетчик постоянно корректируется, чтобы гарантировать его синхронизацию с вибрациями атомов цезия.

Современные системы часто записывают время как временные метки Unix. Временная метка Unix — это числовое представление определенного момента времени, измеряемое как количество секунд, прошедших с 1 января 1970 года. 00:00:00 UTC. Временные метки Unix широко используются в компьютерных системах, поскольку с ними легко работать, их можно легко сравнивать, сортировать и манипулировать ими. Они также не зависят от часового пояса, то есть обеспечивают стандартизированное представление времени, которое можно использовать в разных географических регионах.

Итак… когда вы проверяете время, вы показываете

Работа с датами в PHP

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

Отображать дату как 2023-02-08:

$current_date = date("Y-m-d");
echo $current_date;

Отображение даты как отметки времени 1612684800:

$timestamp = strtotime("2023-02-08");
echo $timestamp;

Показывать дату и время в формате UTC вместо местного часового пояса, как 2023-02-08 15:25:00:

$utc_date = gmdate("Y-m-d H:i:s");
echo $utc_date;

Отобразить текущую временную метку Unix как 1612742153:

$current_timestamp = time();
echo $current_timestamp;

По умолчанию установите часовой пояс Лос-Анджелес, а затем отобразите дату и время как 2023-02-08 07:25:00:

date_default_timezone_set("America/Los_Angeles");
$date = date("Y-m-d H:i:s");
echo $date;

Сортировка символов формата даты PHP по логическим группам, где каждая группа располагается в алфавитном порядке, а символы формата — в виде нижних индексов:

  • день
    • d – День месяца, 2 цифры с ведущими нулями (от 01 до 31). Пример: 15
    • D – Текстовое представление дня, три буквы (с понедельника по воскресенье). Пример: Thu
    • j – День месяца без ведущих нулей (от 1 до 31). Пример: 15
    • l (строчная L) — полнотекстовое представление дня недели (с воскресенья по субботу). Пример: Thursday
    • S – Английский порядковый суффикс дня месяца, 2 символа (st, nd, rd или th). Пример: th
    • w – Отображение номеров дней недели (от 0 (воскресенье) до 6 (суббота)). Пример: 4
    • z – день года (начиная с 0). Текущий пример даты может быть неточным без точных расчетов.
  • Месяц
    • F – Полнотекстовое отображение месяца (с января по декабрь). Пример: February
    • m – Числовое представление месяца с ведущими нулями (от 01 до 12). Пример: 02
    • M – Краткое текстовое представление месяца, три буквы (с января по декабрь). Пример: Feb
    • n – Числовое представление месяца без ведущих нулей (от 1 до 12). Пример: 2
    • t – количество дней в соответствующем месяце (от 28 до 31). Пример: 28
  • неделя
    • W – Номер недели года по стандарту ISO-8601, недели начинаются с понедельника (пример: 42, неделя 42 года). Текущий пример даты может быть неточным без точных расчетов.
  • год
    • o – ISO-8601 год нумерации недель. Он имеет то же значение, что и Y, за исключением того, что если номер недели ISO (W) относится к предыдущему или следующему году, вместо него используется этот год. Пример: 2024
    • Y – Полное числовое представление года, 4 цифры. Пример: 2024
    • y – двузначное представление года. Пример: 24
  • Часовой пояс
    • T — Аббревиатура часового пояса. Пример: EST
    • e — Идентификатор часового пояса. Пример: America/New_York
    • P – Разница со средним временем по Гринвичу (GMT) с двоеточием между часами и минутами. Пример: -04:00
    • O — Разница со средним временем по Гринвичу (GMT) без двоеточий между часами и минутами. Пример: -0400
    • Z – Смещение часового пояса в секундах. Смещение часовых поясов к западу от UTC всегда отрицательное, а к востоку от UTC всегда положительное. Пример: -14400 (for EST)

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

ЧИТАТЬ  Как преуспеть в ваших текущих и будущих ролях SEM

Итак… Который час?

Моя операционная система форматирует дату и время как 15 февраля 2024 года, 16:26. Время корректируется в соответствии с временной меткой Unix в соответствии с моим часовым поясом, скорректированным на летнее время. Это время синхронизируется в течение последнего часа из MacOS с сервером NTP, который имеет формат UTC и настроен на значение 0,9 секунды с использованием TAI и атомных часов. Все это, конечно, точное время, указанное для моего местоположения относительно Земли, Луны и Солнца… с поправкой на летнее время.

Source