summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/l10n.php3
-rw-r--r--tests/lib/l10n.php12
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/l10n.php b/lib/l10n.php
index d2da302b644..f93443b886a 100644
--- a/lib/l10n.php
+++ b/lib/l10n.php
@@ -386,8 +386,7 @@ class OC_L10N {
case 'time':
if($data instanceof DateTime) {
return $data->format($this->localizations[$type]);
- }
- elseif(is_string($data)) {
+ } elseif(is_string($data) && !is_numeric($data)) {
$data = strtotime($data);
}
$locales = array(self::findLanguage());
diff --git a/tests/lib/l10n.php b/tests/lib/l10n.php
index dfc5790c2e7..12eac818f84 100644
--- a/tests/lib/l10n.php
+++ b/tests/lib/l10n.php
@@ -52,4 +52,16 @@ class Test_L10n extends PHPUnit_Framework_TestCase {
$this->assertEquals('5 oken', (string)$l->n('%n window', '%n windows', 5));
}
+ /**
+ * Issue #4360: Do not call strtotime() on numeric strings.
+ */
+ public function testNumericStringToDateTime() {
+ $l = new OC_L10N('test');
+ $this->assertSame('February 13, 2009 23:31', $l->l('datetime', '1234567890'));
+ }
+
+ public function testNumericToDateTime() {
+ $l = new OC_L10N('test');
+ $this->assertSame('February 13, 2009 23:31', $l->l('datetime', 1234567890));
+ }
}