BUGFIX: Fixed Sean's MSSQL date fix to work for both Date and Datetime

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@79310 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2009-06-16 02:57:22 +00:00
parent 882a2cc533
commit add7d31d8b

View File

@ -262,10 +262,19 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
$this->class = get_class($this);
foreach($record as $k => $v) {
// MSSQLDatabase::date() uses datetime for the data type for "Date" and "SSDatetime"
if($this->db($k) == 'Date' || $this->db($k) == 'SSDatetime') {
$meridiem = substr($v, strlen($v) - 2, strlen($v));
$v = substr($v, 0, strlen($v) - 6);
$record[$k] = date('Y-m-d H:i:s', strtotime($v . ' ' . $meridiem));
switch($this->db($k)) {
case "Date":
$meridiem = substr($v, strlen($v) - 2, strlen($v));
$v = substr($v, 0, strlen($v) - 6);
$record[$k] = date('Y-m-d', strtotime($v . ' ' . $meridiem));
break;
case "Datetime":
case "SSDatetime":
$meridiem = substr($v, strlen($v) - 2, strlen($v));
$v = substr($v, 0, strlen($v) - 6);
$record[$k] = date('Y-m-d H:i:s', strtotime($v . ' ' . $meridiem));
break;
}
}
}