Я не знаю, подойдет ли это шаблонам, которые вы хотите использовать, но это должно работать.
class DateTimeReference extends DateTime {
function __construct(string $time = "now" , DateTimeZone $timezone = NULL ) {
parent::__construct($time, new DateTimeZone("UTC"));
}
}
или если вы хотите, чтобы пользователь мог перезаписывать часовой пояс, но по умолчанию установлен UTC, если он не установлен:
class DateTimeReference extends DateTime {
function __construct(string $time = "now" , DateTimeZone $timezone = NULL ) {
parent::__construct($time, is_null($timezone) ? new DateTimeZone("UTC") : $timezone );
}
}