Головна » Кодування » Показувати дату і час Як це зробити правильно

    Показувати дату і час Як це зробити правильно

    Ми стикаємося з ними датами і часом… ну, кожен день. Що стосується Інтернету, ви можете виявити їх у своїх мобільних програмах, електронних листах, у програмах обміну повідомленнями та в багатьох інших місцях. Проте, незважаючи на побачення дати і часу щодня і скрізь, ми ще маємо прийняти універсальний формат для нього.

    Наприклад, якщо я пишу 10/05/2015, ви ніколи не можете бути впевнені, що "10" є місяцем або датою, якщо я не скажу вам, звідки я перебуваю. Іноді формат змінюється, іноді мова.

    Важливо, що як веб-розробники ми звертаємо увагу на дату і час, з якими ми маємо справу в наших проектах, щоб ми могли задовольнити їх різними географічними мешканцями без будь-якого конфлікту. У цьому пості ми будемо обговорювати чого уникати і чого обіймати коли йдеться про відображення дати-часу.

    Глобалізація

    Припустимо, ми не хочемо конвертувати та показувати різні формати дати та часу для різних глядачів у світі, що ми можемо зробити? Ми вибираємо один глобальний формат і дотримуємося його. Ось де входять деякі стандарти. Перш ніж дістатися до цього, я повинен повідомити, що W3C рекомендує використовувати формат дати ISO 8601 з часовим поясом UTC.

    ISO 8601

    ISO 8601 описує загальноприйнятий у світі спосіб представлення дат і часу з використанням чисел.

    І формат для повної дати є; YYYY-MM-DD, наприклад: 2015-07-28

    YYYY = 4 цифри рокуMM = 2-місячний місяць (01 = січень і т.д.)DD = 2-хзначний день (01 до 31)

    Для повної дати-часу;YYYY-MM-DDThh: мм: сц, наприклад: 2015-07-28T21: 15: 18.45

    T = Щоб розділити дату і час відповідно до ISO 8601мм = 2 цифри хвилини (від 00 до 59)ss = друга цифра (від 00 до 59)s = Десяткові частки секунди, 1 або більше цифр

    Зверніть увагу, що оскільки в наведеному вище прикладі не було згадано жодного часового поясу, слід припустити, що час знаходиться в локальному часовому поясі. Якщо ви вирішили використовувати часовий пояс UTC, просто додайте Z до значення для позначення UTC

    Наприклад: 2015-07-28T21: 15: 18.45Z

    Але якщо ви хочете відобразити місцевий час, то ви можете додати a Зсув часового поясу для UTC у значення у форматах +hh: мм або -hh: мм по мірі необхідності.

    Наприклад: припустимо 2015-07-28T21: 15: 18.45 знаходиться в часовому поясі EST (східний стандартний час), який відстає на 5 годин від часового поясу UTC.

    Для представлення з UTC зміщення ми записуємо 2015-07-28T21: 15: 18.45-05: 00 що еквівалентно часу UTC 2015-07-29T02: 15: 18.45Z.

    Знову Z додається, щоб відобразити дату-час у часі UTC.

    UTC проти GMT

    Вони обидва однакові, але різні. Ви, напевно, один раз потрапили в GMT; під час налаштування дати й часу на мобільному телефоні або комп'ютері. Це найпопулярніший часовий пояс, визнаний у всьому світі, оскільки він існує довше, ніж UTC.

    Хоча деякі можуть сказати, що обидва вони однакові, але вони не є, UTC є наступником GMT і підтримується Міжнародним Союзом Телекомунікацій. Рекомендується посилатися на час на основі UTC, а не GMT.

    Використовуйте ім'я місяців

    Стандарт ISO використовував лише цифри у поданні дати, щоб уникнути будь-яких мовних конфліктів. Але якщо вміст веб-програми буде англійською мовою, тоді слід розглянути питання про написання місяців англійською мовою, а не цифрами.

    Замість 2015-07-28, 28 липня 2015 року легше зрозуміти багатьом, і менш заплутаним.

    Локалізація

    Є моменти, коли ми хочемо бути дуже специфічними з нашими послугами і хотіли б представити дату і час у місцевих часових поясах і мовах. Існує багато бібліотек і API для веб-розробників, які використовують і відображають дату і час відповідно до регіону доступу.

    Локаль налаштування браузера можна отримати за допомогою інтерпретації Accept-Language запит заголовка або через navigator.language або navigator.browserLanguage Об'єкт JavaScript, але найкращий спосіб - це дозволити користувачеві обрати мову в додатку оскільки перші способи не дуже надійні.

    Після встановлення локалі ви можете відформатувати дату відповідно до нього, наприклад, за допомогою Інтернаціоналізація API, можна форматувати дату за допомогою toLocaleDateString наприклад, у JavaScript, myDate.toLocaleDateString ('ko-KR') поверне відформатовану дату у форматі, що використовується в Кореї корінними громадянами.

    Перехід на літній час (DST)

    У деяких країнах літній час здійснюється шляхом пересилання годинників на годину влітку для використання додаткового сонячного світла. Будьте в курсі DST, щоб не відставати від місцевих часів у ваших службах.

    Немає двох-річного року

    При налаштуванні дати та часу для локалізації не використовуйте двозначний формат для року в будь-якій точці. Ми вже в XXI столітті. Використання років, як 64, 99 в майбутньому буде важким. Якщо ви вже маєте систему з двома цифрами, розглянути можливість змінити її.

    Високосний рік та інші календарі

    Давайте закінчимо цю посаду з різними речами, які потрібно пам'ятати під час роботи з датами. Якщо ви не використовуєте будь-яку бібліотеку або API для дат і хочете займатися ними самостійно (тобто ні рекомендується тим не менш), не забудьте показати 29 лютого на вхідних для високосних років.

    Також варто відзначити, що Григоріанський календар - це не єдина форма календаря, доступна і використана по всьому світу. Є кілька регіональних календарів, які місцеві жителі слідують, особливо коли мова йде про свята.

    Список літератури

    • Міжнародний союз телекомунікацій: стан дослідження з координованого універсального часу (UTC) у МСЕ-R
    • ISO: ISO 8601 - формат дати та часу
    • Вікіпедія: Координований загальний час
    • Вікіпедія: Перехід на літній час
    • Вікіпедія: Середній час за Грінвічем
    • Примітка: Формати дати та часу
    • Поради W3C: використовуйте міжнародний формат дати (ISO)