Как найти дату / время по Гринвичу по названию страны?
Как мне найти название страны → дата/время GMT, которое я могу сделать, например:
Я пробовал gmdate() , date_default_timezone_set(‘Asia/. ‘); и ini_set(‘date.timezone’,’China’); , но это не помогло мне легко найти название страны для даты/времени GMT.
Может кто-нибудь пожалуйста, покажите мне пример PHP, который действительно работает?
4 ответа
Вы можете выполнять поиск по часам по странам с помощью DateTimeZone::listIdentifiers .
Пример, чтобы получить часовые пояса в Португалии:
Затем вы можете:
Как повторялось снова и снова в этой теме, вы не можете получить один часовой пояс для каждой страны. В странах есть несколько часовых поясов, и вы заметите, что даже эта страница даже не выбирает одно для некоторых стран, таких как U.S.A.
Здесь вы найдете полный список часовых поясов, поддерживаемых PHP, которые предназначены для использования с, например, date_default_timezone_set() . Также удобнее искать поддержку для стран с несколькими часовыми поясами. Возьмем пример американского региона.
Список представляет собой полные временные интервалы, поддерживаемые PHP, которые предназначены для использования с, например, date_default_timezone_set().
Не уверен, что это то, что вы ищете, но PEAR имеет Date «, который имеет хороший пример, который, похоже, делает то, о чем вы просите.
Вы не можете этого сделать, так как многие страны имеют несколько часовых поясов. Вместо этого вы можете сохранить часовой пояс по имени города, но я бы использовал целое число со смещением часового пояса в секундах.
# Работа со временем
Для работы со временем в Python импортируют библиотеку datetime (англ. date «дата», time «время»). В ней есть не только отдельные функции, но и целый новый тип данных.
Называется он точно так же, как библиотека — datetime . Чтобы не путаться, будем подключать библиотеку под именем dt и так всегда к ней обращаться.
Тип данных datetime похож на уже привычные вам int , string и dict . Он нужен, чтобы хранить информацию о конкретном моменте времени: год, месяц, день, час, минуты, секунды и микросекунды.
Чтобы создать объект этого типа, нужно вызвать функцию datetime() из библиотеки dt . Она принимает обязательные аргументы — год, месяц и день, — и необязательные: час, минута, секунда и микросекунда, которые по умолчанию равны нулю.
Создадим объект типа datetime с датой и временем старта Гагарина:
Тип данных datetime позволяет просто вычитать даты друг из друга, как обычные числа. Вот время между стартом Гагарина и его приземлением:
# Упражнения
- Научите Виту сообщать пользователю, сколько времени шёл его любимый сериал.
- Дата выхода первой серии — 17 апреля 2011 года.
- Дата выхода последней серии — 15 апреля 2019 года.
- Напишите код, отвечающий на запрос пользователя "Сколько времени у меня уже ушло на этот курс по разработке?" Вспомните, в какой день и во сколько вы начали проходить курс. Запишите этот момент времени в переменную start_moment . В переменную current_moment запишите текущий момент времени. Затем вычислите разницу двух этих моментов, запишите её в переменную total_time , и напечатайте её на экране.
# Стандарт UTC
Есть несколько стандартов измерения и записи времени. Раньше в основном придерживались GMT (англ. «Greenwich Mean Time», среднее время по гринвичскому меридиану). Позже прежний всемирный формат был отменен и приняли новый, определяемый атомными часами. Это UTC — «coordinated universal time» — всемирное координированное время.
У каждой переменной типа данных datetime можно вызвать метод utcnow() (англ. now «сейчас»). Он вернёт текущий момент времени по UTC с эталонной точностью до микросекунд.
Более того, метод utcnow() настолько хитрый, что для его вызова необязательно явно создавать объект типа datetime . Можно просто написать:
Для получения времени другого часового пояса, есть тип timedelta (от англ. delta, «промежуток»), в котором можно сохранить определенный промежуток времени. Этот тип тоже живёт в библиотеке dt. А объект такого типа создаётся функцией timedelta() :
И прибавляем его к значению времени по UTC:
В аргументах функции timedelta() среди прочего можно указывать days (дни), hours (часы), minutes (минуты), seconds (секунды), microseconds (микросекунды).
Пример: Победитель Гран-при Австралии чемпионата мира Формулы-1 2019 года, Вале Боттас проехал свой самый быстрый круг за 1 минуту 25 секунд и 273250 микросекунд. Второй результат показал Льюис Хэмилтон с разницей в 208860 микросекунд. Вычислим время самого быстрого круга Хэмилтона.
# Упражнения
- Напишите функцию, которая по названию города скажет, сколько там сейчас времени. В словарь UTC_OFFSET (англ. offset, «сдвиг»), для каждого города записана разница местного времени и UTC в часах.
Подключите метод перебора и выведите фразу для каждого города: "В Уфе 5 часов." Используйте проверку для правильно подобранного окончания слова "часы" в зависимости от числа.
Напишите функцию, которая по имени друга скажет, сколько у него сейчас времени. В словаре DATABASE хранятся данные о том, кто из друзей где живёт.
- Подключите метод перебора друзей и выведите фразу для каждого друга: "У Димы сейчас 15 часов." Используйте проверку для правильно подобранного окончания слова "часы" в зависимости от числа.
# Форматирование времени
До сих пор вы печатали время только в одном формате.
Что делать, если хочется напечатать сообщение по-человечески, скажем: "Сейчас 10:31"? Для этого существует метод strftime() (от англ. string format time, «строковый формат времени»). Его можно применить к любому объекту типа datetime и аргументом задать формат вывода времени:
Здесь %H означает часы, %M — минуты. Кроме этих параметров, бывают ещё, например %B — месяц, %Y — год и %S — секунды, %A — название дня недели по-английски, %U — номер недели в году.
# Упражнения
- Сделайте так, чтобы функция what_time() возвращала время в формате часы:минуты .
- Примените все полученные в этой теме знания, чтобы научить Виту отвечать на вопросы про друзей, сколько у них сейчас времени:
- Артём, который час?
- Антон, который час?
Примеры таких запросов уже добавлены в список queries в функции runner() .
Определить время в городе
Локальное время в выбранном городе
На входе у меня есть время в UTC. нужно возвращать локальное время в городе который выбрал.
Определить общее число медалистов в городе
Первый столбец в матрице А(1:2, 1:4) – это количество выпускников в какой-либо школе города, второй.
Определить количество абитуриентов, проживающих в городе
Определить кол-во абитуриентов, проживающих в городе Грязовец и фамилии которых начинаються с буквы.
Определить, можно ли поставить термометры в городе
Ртутные термометры могут использоваться для измерения температуры до -39,4’С. Используя информацию.
Определить общее число медалистов в городе
3)Первый столбец в матрице D(1:2, 1:6) – это количество выпускников в какой-либо школе города.
Определить количество абитуриентов, проживающих в городе Киеве
Задана ведомость абитуриентов, сдавших вступительные экзамены в университет. В каждой строке данной.
При выборе в ячейке города из выпадающего списка, в соседней ячейке отображать текущее время в этом городе
Добрый всем день. Помогите пжл решить такую задачку: Есть список городов, в т.ч. зарубеж. .
Определить народа какого цвета больше всего в городе
Несмотря на небольшую площадь, территорию Волшебной страны населяет множество народов, различных.
Определить где находится машина в городе или за городом
Всем привет, как задачу воплотить в реальный скрипт. Шоссе проходит через два города, в городе.
Определить пределы, в которых находится доля жителей в городе в возрасте старше 60 лет
1. В городе 500 тыс. жителей. По материалам учета городского населения было обследовано 50 тыс.
Получить текущее время по названию города
Я пытаюсь получить текущую дату и время, передавая название города, все, что я мог найти, это найти его по часовому поясу или широте и долготе. Может ли кто-нибудь помочь мне в этом?
2 ответа
Слишком просто. Все, что вам нужно сделать, это:
1. получение широты и долготы по названию города из API карт Google.
2. получить часовой пояс по заданной широте и долготе на первом шаге
3. получить dateTime по заданному timeZoneId на втором шаге
Вы можете создать запрос Ajax в API поиска Мировое время . Затем вы вернете дату, например. на https://www.timeanddate.com/worldclock/germany/berlin
Если вы хотите, чтобы это было в нативном коде Javascript, покажите нам, что у вас уже есть.