Можно ли создать строку даты из отметки времени и смещения часового пояса? - PullRequest
0 голосов
/ 21 февраля 2011

Все расширение даты / времени основано на строках часового пояса, таких как «Европа / Амстердам».

Раскрывающийся список, который я показываю пользователю, имеет одну опцию для каждого смещения часового пояса, например: «(UTC -3:00) Аргентина, Бразилия, Французская Гвиана, Уругвай "

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

Можно ли создать локализованный объект даты или строку даты из чего-то вроде '-2' (как смещение часового пояса) ??

Ответ : date ('Гм ч: i: s ', $ unix_timestamp + $ offset * 60 * 60)

Ответы [ 2 ]

1 голос
/ 21 февраля 2011

Вы можете передать функции даты второй аргумент, используя mktime . Что-то вроде этого:

var_dump($endDate = date('Y-m-d h:i:s', mktime(0-2, 0, 0, 2, 1, 2011)));

Или с использованием класса datetime , например:

$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

date_default_timezone_set('Europe/Bucharest');
# equivalent of GMT since Europe/Bucharest is +2 , we feed -2 for the hour
var_dump($endDate = date('Y-m-d h:i:s', mktime(date('h')-2, date('i'), date('s'), date('d'), date('m'), date('Y'))));
# equivalent of GMT+1 since Europe/Bucharest is +2 we feed -1 for the hour
var_dump($endDate = date('Y-m-d h:i:s', mktime(date('h')-1, date('i'), date('s'), date('d'), date('m'), date('Y'))));

вы также можете накормить +3 на час, принимая Европу / Бухарест в качестве часового пояса по умолчанию, равном +3, будет означать GMT +5, вы также можете установить часовой пояс по умолчанию, по которому Европа / Лондон эквивалентны GMT0, после чего пользователь отправляет вам +2 вы будете кормить mktime с +2 за час, который даст вам эквивалент GMT + 2 Европа / Бухарест.

0 голосов
/ 03 апреля 2011

дата ('Ymd h: i: s', $ unix_timestamp + $ offset * 60 * 60)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...