From 4df21d29e02ed5f5f16fc1d1649f0119650ff8e8 Mon Sep 17 00:00:00 2001
From: Sam Minnee <sam@silverstripe.com>
Date: Tue, 16 Jun 2009 04:03:47 +0000
Subject: [PATCH] BUGFIX: Fixed date field manipulation. MINOR: Added sorts to
 TableListFieldTest

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@79327 467b73ca-7a2a-4603-9d3b-597d59a354a9
---
 core/model/DataObject.php          | 10 ++++------
 tests/forms/TableListFieldTest.php |  2 ++
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/core/model/DataObject.php b/core/model/DataObject.php
index 1392890ee..036259a83 100644
--- a/core/model/DataObject.php
+++ b/core/model/DataObject.php
@@ -265,16 +265,14 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
 					// MSSQLDatabase::date() uses datetime for the data type for "Date" and "SSDatetime"
 					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));
+							$v = preg_replace('/([ap]m)$/i', ' \\1', $v);
+							$record[$k] = date('Y-m-d', strtotime($v));
 							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));
+						$v = preg_replace('/([ap]m)$/i', ' \\1', $v);
+							$record[$k] = date('Y-m-d H:i:s', strtotime($v));
 							break;
 					}
 				}
diff --git a/tests/forms/TableListFieldTest.php b/tests/forms/TableListFieldTest.php
index ceb0532c4..d596647e6 100644
--- a/tests/forms/TableListFieldTest.php
+++ b/tests/forms/TableListFieldTest.php
@@ -159,6 +159,7 @@ class TableListFieldTest_Obj extends DataObject implements TestOnly {
 		"B" => "Varchar",
 		"C" => "Varchar",
 	);
+	static $default_sort = "A";
 	
 	function D() {
 		return $this->A . '/' . $this->B . '/' . $this->C;
@@ -174,6 +175,7 @@ class TableListFieldTest_CsvExport extends DataObject implements TestOnly {
 		"A" => "Varchar",
 		"B" => "Varchar"
 	);
+	static $default_sort = "A";
 }
 
 class TableListFieldTest_TestController extends Controller {