Как преобразовать строку datetime в UTC?

Как я могу преобразовать строку datetime следующим образом: 2012-09-03 22:00 US Estern в часовой пояс UTC?

Вы должны посмотреть объект DateTime и связанные с ним функции в документации.

Если ваша дата ввода уже находится в строковом формате, DateTime::createFromFormat() поможет вам создать целочисленную дату типа эпохи, с которой объект может работать. После этого это просто getTimezone() и setTimezone() .

Вы можете преобразовать временные метки из БД в эпоху с помощью strtotime и обернуть их в специальный класс CSS:

 <span class="timestamp"><?php echo strtotime('2012-09-03 22:00'); ?></span> 

И затем с небольшим количеством Javascript (пример jQuery), динамически преобразуйте эпоху unix в дату и время локали:

  $('.timestamp').each(function(){ var seconds = $(this).html(); var d = new Date(1000 * parseInt(seconds)); var t = (d.getMonth()<9 ? '0':'') + parseInt(d.getMonth()+1) + '/'; t+= (d.getDate()<10 ? '0' : '') + parseInt(d.getDate()) + '/'; t+= parseInt((d.getYear()<1000 ? d.getYear()+1900 : d.getYear())) + ' '; t+= (d.getHours()<10 ? '0' : '') + d.getHours() + ':' + (d.getMinutes()<10 ? '0' : '') + d.getMinutes(); $(this).html(t); }); 

Это будет выводить даты в формате mm/dd/yyyy hh:ii , относительно часовой пояс браузера.