protected function _initializeFromArray($date)
{
if (isset($date['year']) && is_string($date['year']) && strlen($date['year']) == 2) {
if ($date['year'] > 70) {
$date['year'] += 1900;
} else {
$date['year'] += 2000;
}
}
foreach ($date as $key => $val) {
if (in_array($key, array('year', 'month', 'mday', 'hour', 'min', 'sec'))) {
$this->{'_' . $key} = (int) $val;
}
}
// If $date['day'] is present and numeric we may have been passed
// a Horde_Form_datetime array.
if (isset($date['day']) && (string) (int) $date['day'] == $date['day']) {
$this->_mday = (int) $date['day'];
}
// 'minute' key also from Horde_Form_datetime
if (isset($date['minute']) && (string) (int) $date['minute'] == $date['minute']) {
$this->_min = (int) $date['minute'];
}
$this->_correct();
}