Нужны даты & раз я получаю из Highrise API через PHP / cURL для вывода в EST.
// functions.php
function hr_xml($acct, $path) {
// HTTP Authentication
$url = curl_init('https://' . $acct . '.highrisehq.com/' . $path . '.xml');
curl_setopt($url, CURLOPT_RETURNTRANSFER, true);
curl_setopt($url, CURLOPT_USERPWD, '..................:x');
curl_setopt($url, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($url, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($url);
curl_close($url);
$xml = new SimpleXMLElement($data);
return $xml;
}
function get_day($tdVal) {
$input = substr($tdVal, 0, 10);
$date = DateTime::createFromFormat("Y-m-d", $input);
$date->setTimeZone(new DateTimeZone('EST'));
return $date->format("l");
}
function get_time($tdVal) {
$input = substr($tdVal, 11, 5);
$time = DateTime::createFromFormat("H:i",$input);
$date->setTimeZone(new DateTimeZone('EST'));
return $time->format("A g:i");
}
Это работает на моем локальном хосте, где часовой пояс по умолчанию — UTC, но не на моем производственном сервере, где часовой пояс по умолчанию — America / Los_Angeles; там я помещаю время, которое должно быть 10 утра по восточному поясному времени и было 2 часа дня на моем локальном хосте и на производстве, прежде чем я добавил биты setTimeZone, на моем локальном хосте теперь то, что должно быть 10 часов утра, это 10 часов утра, а на производстве сейчас 5 часов вечера. Что за черт.
Задача ещё не решена.
Других решений пока нет …