From 5322ecc6922d8bad5b0f4d53ccf37702f0802493 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Tue, 19 May 2009 00:35:15 +0000 Subject: [PATCH] ENHANCEMENT SSDatetime->setValue() can now set a timestamp, consistently working the same as Date does git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@77120 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/model/fieldtypes/SSDatetime.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/model/fieldtypes/SSDatetime.php b/core/model/fieldtypes/SSDatetime.php index 552b19999..64437ae92 100644 --- a/core/model/fieldtypes/SSDatetime.php +++ b/core/model/fieldtypes/SSDatetime.php @@ -12,13 +12,18 @@ * @subpackage model */ class SSDatetime extends Date { + function setValue($value) { // Default to NZ date format - strtotime expects a US date - if(ereg('^([0-9]+)/([0-9]+)/([0-9]+)$', $value, $parts)) + if(ereg('^([0-9]+)/([0-9]+)/([0-9]+)$', $value, $parts)) { $value = "$parts[2]/$parts[1]/$parts[3]"; - - if($value) $this->value = date('Y-m-d H:i:s', strtotime($value)); - else $value = null; + } + + if(is_numeric($value)) { + $this->value = date('Y-m-d H:i:s', $value); + } elseif(is_string($value)) { + $this->value = date('Y-m-d H:i:s', strtotime($value)); + } } function Nice() {