Напишите функцию которая по названию города скажет сколько там сейчас времени
Перейти к содержимому

Напишите функцию которая по названию города скажет сколько там сейчас времени

  • автор:

Как найти дату / время по Гринвичу по названию страны?

Как мне найти название страны → дата/время 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 позволяет просто вычитать даты друг из друга, как обычные числа. Вот время между стартом Гагарина и его приземлением:

# Упражнения

  1. Научите Виту сообщать пользователю, сколько времени шёл его любимый сериал.
  • Дата выхода первой серии — 17 апреля 2011 года.
  • Дата выхода последней серии — 15 апреля 2019 года.
  1. Напишите код, отвечающий на запрос пользователя "Сколько времени у меня уже ушло на этот курс по разработке?" Вспомните, в какой день и во сколько вы начали проходить курс. Запишите этот момент времени в переменную 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 микросекунд. Вычислим время самого быстрого круга Хэмилтона.

# Упражнения

  1. Напишите функцию, которая по названию города скажет, сколько там сейчас времени. В словарь UTC_OFFSET (англ. offset, «сдвиг»), для каждого города записана разница местного времени и UTC в часах.

Подключите метод перебора и выведите фразу для каждого города: "В Уфе 5 часов." Используйте проверку для правильно подобранного окончания слова "часы" в зависимости от числа.

Напишите функцию, которая по имени друга скажет, сколько у него сейчас времени. В словаре DATABASE хранятся данные о том, кто из друзей где живёт.

  1. Подключите метод перебора друзей и выведите фразу для каждого друга: "У Димы сейчас 15 часов." Используйте проверку для правильно подобранного окончания слова "часы" в зависимости от числа.

# Форматирование времени

До сих пор вы печатали время только в одном формате.

Что делать, если хочется напечатать сообщение по-человечески, скажем: "Сейчас 10:31"? Для этого существует метод strftime() (от англ. string format time, «строковый формат времени»). Его можно применить к любому объекту типа datetime и аргументом задать формат вывода времени:

Здесь %H означает часы, %M — минуты. Кроме этих параметров, бывают ещё, например %B — месяц, %Y — год и %S — секунды, %A — название дня недели по-английски, %U — номер недели в году.

# Упражнения

  1. Сделайте так, чтобы функция what_time() возвращала время в формате часы:минуты .
  2. Примените все полученные в этой теме знания, чтобы научить Виту отвечать на вопросы про друзей, сколько у них сейчас времени:
  • Артём, который час?
  • Антон, который час?

Примеры таких запросов уже добавлены в список 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, покажите нам, что у вас уже есть.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *