if (parent::
$_defaultOffset != 0
) { $date =
$this->
_getTime(parent::
$_defaultOffset);
} // set the timezone and offset for $this
$zone = @
date_default_timezone_get();
$this->
setTimezone($zone);
// try to get timezone from date-string
if (!
is_int($date)) { $zone =
$this->
getTimezoneFromString($date);
$this->
setTimezone($zone);
} // set datepart
if (($part !== null &&
$part !== self::TIMESTAMP
) or (!
is_numeric($date))) { // switch off dst handling for value setting
$this->
setUnixTimestamp($this->
getGmtOffset());
$this->
set($date,
$part,
$this->_locale
);
// DST fix
if (is_array($date) === true
) {