У меня есть приложение, в котором пользователи вводят время/даты, которые затем преобразуются через strtotime() в временные метки Unix (пользователи устанавливают свои собственные часовые пояса). Это обычно работает достаточно хорошо; strtotime() даже удается преобразовать время, такое как 2:15 AM, 9 марта 2014 года в метку времени (что соответствует временной отметке, которая будет возвращена, если пользователь вводит «3:15 AM 9 марта 2014 года»).PHP strtotime и DST
Однако, скажем, пользователь хочет ввести время утром 2 ноября 2014 года - в частности, между 2:00 и 3:00. Есть ли элемент, который пользователи могут добавить, чтобы указать , который будет использоваться для времени?
Например, если пользователь передает «2:15 AM 2 ноября 2014 года» через strtotime(), результатом является отметка времени UNIX, соответствующая «второй» 2:15 в эту дату.
Как определить «первый» 2:15?
Я предлагаю вам использовать классы 'DateTime' и' DateTimeZone' вместо 'strtotime()' – Phil
Извините за наивный вопрос, но я не уверен, как это было бы полезно для пользователей? Я понял, что мой первоначальный пост был несколько неясным, поэтому я его отредактировал. В настоящий момент приложение принимает вход от пользователей, таких как «2:15 AM 2 ноября 2014 года». Есть ли строка, в которой * user * (а не кодер, как я неправильно написал в своем OP), может войти, чтобы сообщить программе *, которая * "2:15" они намеревались? Или это то, что я должен использовать DateTime в любом случае? Опять же, извините за путаницу! – user3092995
В принципе нет решения. 2 ноября 2: 2 часа. Вы просто ничего не делаете в течение этого времени, если только вы не возражаете, что вам придется ждать час. Вот почему переключение происходит в середине ночи в выходные, чтобы уменьшить проблемы, которые приводят к минимуму. Официального решения этой двусмысленности нигде в реальном мире я не знаю. – deceze