public function save(Gyuser_Model_BankAccounts $bank) { if (trim($bank->getOpening_date()) == '') { $opening_date = null; } else { $dateArr = explode('/', $bank->getOpening_date()); if (checkdate($dateArr[1], $dateArr[0], $dateArr[2])) { $stampeddate = mktime(12, 0, 0, $dateArr[1], $dateArr[0], $dateArr[2]); $opening_date = date("Y-m-d", $stampeddate); } elseif (checkdate($dateArr[0], '01', $dateArr[1])) { //in case they have entered only month and year format ex: 02/1993 $stampeddate = mktime(12, 0, 0, $dateArr[0], '01', $dateArr[1]); $opening_date = date("Y-m-d", $stampeddate); } else { throw Exception('The bank opening date is invalid.'); } } $data = array("user_id" => $bank->getUser_id(), "bank_name" => $bank->getBank_name(), "account_n" => $bank->getAccount_n(), "branch" => $bank->getBranch(), "opening_date" => $opening_date, "zip_code" => $bank->getZip_code(), "location_capital" => $bank->getLocation_capital()); if (null === ($id = $bank->getId())) { unset($data['id']); $id = $this->getDbTable()->insert($data); return $id; } else { unset($data['user_id']); $id = $this->getDbTable()->update($data, array('id = ?' => $id)); return $id; } }