php перевод даты в utc

Дата и время в PHP

В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.

PHP-функции для работы с датой и временем

PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:

time() Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX). getdate( ) Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:

secondsСекунды (0-59)
minutesМинуты (0-59)
hoursЧасы (0-23)
mdayДень месяца (1-31)
wdayДень недели (0-6), начиная с воскресенья
monМесяц (1-12)
yearГод
ydayДень года (0-365)
weekdayНазвание дня недели (например, Friday)
monthНазвание месяца (например, January)
0Абсолютное время

Пример 1

РЕЗУЛЬТАТ ПРИМЕРА 1:

seconds = 13
minutes = 52
hours = 17
mday = 19
wday = 0
mon = 9
year = 2021
yday = 261
weekday = Sunday
month = September
0 = 1632063133
Сегодня: 19.9.2021

date() Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:

Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту «\». Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку «n», то надо ввести «\\n», поскольку «\n» является символом новой строки.

Пример 2

РЕЗУЛЬТАТ ПРИМЕРА 2:

Сегодня 19.09.21 17:52

часы
минуты
секунды
месяц
день месяца
год

Пример 3

РЕЗУЛЬТАТ ПРИМЕРА 3:

22 January 1971, at 1.30 pm, Friday

Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.

Пример 4

РЕЗУЛЬТАТ ПРИМЕРА 4:

Sunday 19 September 2021 17:52
Сегодня Sunday 19 September 2021 17:52:13
MSK

Источник

php конвертировать datetime в UTC

Мне нужен простой способ конвертировать отметку времени даты в UTC (из любого часового пояса, в котором находится сервер), надеюсь, без использования каких-либо библиотек.

14 ответов:

(но это использует класс)

без каких-либо классов вы можете попробовать что-то вроде этого:

Примечание: возможно, вам придется установить часовой пояс обратно в оригинал, а также

использовать strtotime чтобы создать метку времени из данной строки (интерпретируется как местное время) и использовать gmdate чтобы получить его в виде форматированной даты UTC назад.

пример

Как и просили, вот простой пример:

чтобы получить «сейчас» в UTC.

Если у вас есть дата в формате гггг-ММ-ДД чч:мм:СС, вы можете фактически обмануть php, добавив UTC в конце вашей «строки datetime» и использовать strtotime для ее преобразования.

это будет печатать этот:

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

немного странный способ решить эту проблему. 🙂

Как strtotime требуется определенный формат ввода,DateTime:: createFromFormat можно использовать (php 5.3+ требуется)

Я иногда использую этот метод:

работает всебольшинство времени.

преобразование строки местного часового пояса в строку UTC.
например, часовой пояс Новой Зеландии

Источник

в PHP конвертировать datetime в UTC

Мне нужен простой способ конвертировать отметку времени даты в UTC (из любого часового пояса, в котором находится сервер), надеюсь, без использования библиотек.

14 ответов

(но это использует класс)

без каких-либо классов вы можете попробовать что-то вроде этого:

Примечание: возможно, Вам также потребуется установить часовой пояс обратно в исходный

использовать strtotime для создания метки времени из данной строки (интерпретируется как местное время) и использовать gmdate чтобы получить его в виде форматированной даты UTC.

пример

по запросу, вот простой пример:

чтобы получить «сейчас» в UTC.

Если у вас есть дата в формате гггг-ММ-ДД чч:мм:СС, вы можете обмануть php, добавив UTC в конце вашей «строки datetime» и использовать strtotime для ее преобразования.

это напечатает это:

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

немного странный способ ее решения. 🙂

As strtotime требуется определенный формат ввода,DateTime:: createFromFormat может использоваться (php 5.3+ требуется)

Я иногда использую этот метод:

работает все большинство времени.

преобразовать строку локального часового пояса в строку UTC.
например, часовой пояс Новой Зеландии

С PHP 5 или выше, вы можете использовать datetime:: format функция (см. документацию http://us.php.net/manual/en/datetime.format.php)

вы должны изменить время форматирования, чтобы увидеть другой выход

функция нормализации общего назначения для форматирования любой метки времени из любого часового пояса в другой. Очень полезно для хранения datetimestamps пользователей из разных часовых поясов в реляционной базе данных. Для сравнения баз данных храните метку времени как UTC и используйте с gmdate(‘Y-m-d H:i:s’)

использование:

на Pafford у Фила (Я не понял его «Y-d-mTG:i: sz», и он предложил вернуть часовой пояс). Поэтому я предлагаю это (я усложнил, изменив формат HMTL в plain / text. ):

в качестве альтернативы вы можете попробовать это:

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

удалите «e», если вы не хотите показывать свой регион/страну.

Источник

Как я могу легко конвертировать даты из UTC через PHP?

Я храню даты в базе данных MySQL в полях datetime в UTC. Я использую PHP, и я вызвал date_timezone_set(‘UTC’), чтобы все вызовы date() (без метки времени) возвращали дату в UTC.

затем у меня есть это, чтобы данный веб-сайт мог выбрать свой часовой пояс. Теперь я хочу, чтобы даты отображались в часовом поясе сайта. Итак, если у меня есть дата, хранящаяся как «2009-04-01 15:36:13», она должна отображаться для пользователя в часовом поясе PDT (-7 часов) как «2009-04-01 08:36:13».

что является ли самый простой (наименее кодовый) метод для этого через PHP? До сих пор все, о чем я думал, это

есть ли более короткий путь?

8 ответов

вот что мы сделали с наших серверов. Мы устанавливаем все, чтобы использовать UTC, и мы показываем в часовом поясе пользователя, конвертируя из UTC на лету. Код в нижней части этого сообщения является примером того, как заставить это работать; вы должны подтвердить, что он работает во всех случаях с вашей настройкой (т. е. летнее время и т. д.).

Настройка CentOS

настройка В MySQL

импорт часовых поясов в MySQL при необходимости:

редактировать мои.cnf и добавьте следующее В разделе [mysqld]:

PHP-кода

почему бы не использовать встроенный в DateTime / Часовой Пояс функциональность?

что вы делаете это правильный способ делать вещи. Я бы рекомендовал придерживаться работы только в UTC и просто конвертировать в последнюю минуту для отображения.

вот быстрая функция, которую я собрал для преобразования часового пояса, используя класс DateTime, который поставляется с PHP. Это немного больше кода, чем у вас есть, но я думаю, что это проще и лучший способ структурирования вещи.

надеюсь, что это поможет.

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

тем не менее, лучший вариант-конвертировать ваш datetimes в MySQL для меткаs, и просто использовать базу данных для преобразования раз:

меткаs в MySQL меньше, и поддержка перевод часовых поясов. datetime нет.

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

выключить метка свойства:

на по умолчанию 0 отключает обновление столбца при обновлении других столбцов.

Источник

php convert datetime to UTC

I am in need of an easy way to convert a date time stamp to UTC (from whatever timezone the server is in) HOPEFULLY without using any libraries.

16 Answers 16

Use strtotime to generate a timestamp from the given string (interpreted as local time) and use gmdate to get it as a formatted UTC date back.

Example

As requested, here’s a simple example:

php перевод даты в utc. Смотреть фото php перевод даты в utc. Смотреть картинку php перевод даты в utc. Картинка про php перевод даты в utc. Фото php перевод даты в utc

(But this does use a Class)

Without any classes you could try something like this:

NOTE: You might need to set the timezone back to the original as well

Check the reference:

If you have a date in this format YYYY-MM-HH dd:mm:ss, you can actually trick php by adding a UTC at the end of your «datetime string» and use strtotime to convert it.

This will print this:

And as you can see it takes care of the daylight savings time problem as well.

A little strange way to solve it. 🙂

Convert local time zone string to UTC string.
e.g. New Zealand Time Zone

If you don’t mind using PHP’s DateTime class, which has been available since PHP 5.2.0, then there are several scenarios that might fit your situation:

If the given datetime string is in some timezone different from the one in your PHP configuration, then create the datetime object by supplying the correct timezone (see the list of timezones PHP supports). In this example we assume the local timezone in Amsterdam:

Источник

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

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