#time #timezone
#время #Часовой пояс
Вопрос:
Я немного запутался в очень простом вопросе. Допустим, я нахожусь в часовом поясе 01: 00, и я смотрю на свои часы, регулируемые в соответствии с текущим часовым поясом, в T23:59:59 01:00.59:59 Я ожидаю увидеть это:
Я прав?
Если затем я перелетаю в часовой пояс XY: 00, я соответствующим образом настраиваю свои часы, а затем смотрю на свои часы в то же местное время, T23:59: 59 XY: 00, я ожидаю увидеть то же изображение.
Вообще говоря: формат просто означает «привет, мир! это время, которое я имею в виду локально, просто остерегайтесь, что я на XY часов впереди «.
Спасибо.
Комментарии:
1. Ах, да — большинство часов показывают время и не сообщают вам о часовом поясе. Люди будут обедать в 12:00 (или около того), в каком бы часовом поясе вы ни находились. Если это не что-то вроде Китая (единый часовой пояс для всей страны), но в целом суть остается неизменной — местное время — это местное время. Если люди просыпаются в 07: 00 и ложатся спать в 23: 00 в одном часовом поясе, в другом местные жители будут делать то же самое. Хотя я не уверен, как это может быть вопросом программирования.
Ответ №1:
Строка T23:59:59 01:00
означает, что время здесь равно 23:59:59, а здесь на расстоянии 1 часа от UTC.
Это как если бы вы звонили своему другу и говорили, что «время здесь 23:59, а у нас GMT 1″.
Если вы передадите свою временную строку в PHP как новый объект DateTime:
$string = "T23:59:59 01:00";
$dt = new DateTime("@".strtotime($string));
var_dump($dt);
PHP возьмет это время и переведет его в местное время сервера (в моем случае UTC 0) и включит часовой пояс:
object(DateTime)#1 (3) {
["date"]=>
string(26) "2019-03-06 22:59:59.000000"
["timezone_type"]=>
int(1)
["timezone"]=>
string(6) " 00:00"
}
Я могу изменить часовой пояс объекта datetime:
$timezone = new DateTimeZone('EST');
$dt->setTimezone($timezone);
var_dump($dt);
Затем PHP отобразит время в новом часовом поясе и снова включит часовой пояс:
object(DateTime)#1 (3) {
["date"]=>
string(26) "2019-03-06 17:59:59.000000"
["timezone_type"]=>
int(2)
["timezone"]=>
string(3) "EST"
}