Согласно руководству , setTimeZone
вернет либо объект DateTime
, либо FALSE
, если не может установить часовой пояс.Сохранение возврата на самом деле не нужно, потому что оно изменит объект DateTime
, который вы передаете.
Возможно, вам следует проверить, успешно ли setTimezone
перед установкой для вашего объекта $date
его возвращаемого значения:
$timezone = "Asia/Karachi";
$date = new DateTime($when_to_send, new DateTimeZone($timezone));
if (! ($date && $date->setTimezone(new DateTimeZone('GMT'))) ) {
# unable to adjust from local timezone to GMT!
# (display a warning)
}
$when_to_send = $date->format('Y-m-d H:i:s');