From adab65ab49f125b39bf819abe68b0790cbf394df Mon Sep 17 00:00:00 2001 From: wei <> Date: Wed, 30 Aug 2006 08:35:39 +0000 Subject: Added TDateTimeStamp class for supporting time stamps outside 1970-2038 using float --- framework/3rdParty/readme.html | 29 ++++++++++++++++++---------- framework/Util/TSimpleDateFormatter.php | 14 +++++++++----- framework/Web/UI/WebControls/TDatePicker.php | 8 ++++++-- 3 files changed, 34 insertions(+), 17 deletions(-) (limited to 'framework') diff --git a/framework/3rdParty/readme.html b/framework/3rdParty/readme.html index efa6d411..86021a2e 100644 --- a/framework/3rdParty/readme.html +++ b/framework/3rdParty/readme.html @@ -61,21 +61,21 @@ projects. PEAR :: Package :: DB PHP License 3.0 N.A. - The parseDSN() function from DB.php file. + The parseDSN() function from DB.php file. ../I18N/core/TCache_Lite.php PEAR :: Package :: Cache_Lite LGPL N.A. - Cache_Lite class was renamed as TCache_Lite for packaging purposes. + Cache_Lite class was renamed as TCache_Lite for packaging purposes. ../I18N/core/Gettext PEAR :: Package :: File_Gettext PHP License 3.0 N.A. - File_Gettext, File::Gettext::MO, and File::Gettext::PO + File_Gettext, File::Gettext::MO, and File::Gettext::PO @@ -83,7 +83,7 @@ projects. Service_JSON proposal BSD N.A. - JSON encoder/decoder by Michal Migurski, Matt Knapp and Brett Stimmerman + JSON encoder/decoder by Michal Migurski, Matt Knapp and Brett Stimmerman @@ -91,21 +91,21 @@ projects. Rico Apache License v2 N.A. - Rico Javascript Library (not yet utilized in Prado) + Rico Javascript Library (not yet utilized in Prado) ../Web/Javascripts/prototype Prototype javascript library The Prototype License (MIT based) N.A. - Core of Prado javascript library. + Core of Prado javascript library. ../Web/Javascripts/extra/logger.js http://gleepglop.com/javascripts/logger/ http://slayeroffice.com None TJavascriptLogger - Javascript logger by Corey Johnson. Object Tree by S.G. Chipman. + Javascript logger by Corey Johnson. Object Tree by S.G. Chipman. @@ -113,7 +113,7 @@ projects. http://www.JSON.org MIT based N.A. - Has "The Software shall be used for Good, not Evil." clause. + Has "The Software shall be used for Good, not Evil." clause. @@ -122,7 +122,7 @@ projects. BSD Quickstart tutorial indexing and search is provided the Zend Lucene search implementation. This product includes the Zend Framework, freely available at - http://www.zend.com + http://www.zend.com @@ -130,9 +130,18 @@ projects. PHP Markdown BSD System.Web.UI.WebControls.TMarkdown - PHP5 class implementation of the PHP Markdown. + PHP5 class implementation of the PHP Markdown. + + ../Util + ADOdb Date Time Library + BSD + System.Util.TDateTimeStamp + TimeStamp support for dates outside the 1970-2038. + + +

diff --git a/framework/Util/TSimpleDateFormatter.php b/framework/Util/TSimpleDateFormatter.php index 03ae7b7d..9c2975d5 100644 --- a/framework/Util/TSimpleDateFormatter.php +++ b/framework/Util/TSimpleDateFormatter.php @@ -168,12 +168,15 @@ class TSimpleDateFormatter /** * Gets the time stamp from string or integer. * @param string|int date to parse - * @return int parsed date time stamp + * @return array date info array */ private function getDate($value) { - if(is_int($value)) - return @getdate($value); + if(!is_string($value)) + { + $s = Prado::createComponent('System.Util.TDateTimeStamp'); + return $s->getDate($value); + } $date = @strtotime($value); if($date < 0) throw new TInvalidDataValueException('invalid_date', $value); @@ -199,7 +202,7 @@ class TSimpleDateFormatter */ public function parse($value,$defaultToCurrentTime=true) { - if(is_int($value)) + if(is_int($value) || is_float($value)) return $value; else if(!is_string($value)) throw new TInvalidDataValueException('date_to_parse_must_be_string', $value); @@ -303,7 +306,8 @@ class TSimpleDateFormatter else { $day = intval($day) <= 0 ? 1 : intval($day); - return @mktime(0, 0, 0, $month, $day, $year); + $s = Prado::createComponent('System.Util.TDateTimeStamp'); + return $s->getTimeStamp(0, 0, 0, $month, $day, $year); } } diff --git a/framework/Web/UI/WebControls/TDatePicker.php b/framework/Web/UI/WebControls/TDatePicker.php index b6daa164..02361e54 100644 --- a/framework/Web/UI/WebControls/TDatePicker.php +++ b/framework/Web/UI/WebControls/TDatePicker.php @@ -422,7 +422,9 @@ class TDatePicker extends TTextBox else $year = $date['year']; - $date = @mktime(0, 0, 0, $month, $day, $year); + $s = Prado::createComponent('System.Util.TDateTimeStamp'); + $date = $s->getTimeStamp(0, 0, 0, $month, $day, $year); + //$date = @mktime(0, 0, 0, $month, $day, $year); $pattern = $this->getDateFormat(); $pattern = str_replace(array('MMMM', 'MMM'), array('MM','MM'), $pattern); @@ -509,7 +511,9 @@ class TDatePicker extends TTextBox $writer->addAttribute('class', $class); $writer->renderBeginTag('span'); - $date = @getdate($this->getTimeStampFromText()); + $s = Prado::createComponent('System.Util.TDateTimeStamp'); + $date = $s->getDate($this->getTimeStampFromText()); + //$date = @getdate($this->getTimeStampFromText()); $this->renderCalendarSelections($writer, $date); -- cgit v1.2.3