Merge pull request #8782 from nextcloud/properly-use-new-method-to-format-date

Use proper method to format absolute timestamp
This commit is contained in:
Morris Jobke 2018-03-12 16:32:38 +01:00 committed by GitHub
commit 3df2fb7af6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 88 deletions

View File

@ -678,29 +678,6 @@ class OC_Util {
);
}
/**
* formats a timestamp in the "right" way
*
* @param int $timestamp
* @param bool $dateOnly option to omit time from the result
* @param DateTimeZone|string $timeZone where the given timestamp shall be converted to
* @return string timestamp
*
* @deprecated Use \OC::$server->query('DateTimeFormatter') instead
*/
public static function formatDate($timestamp, $dateOnly = false, $timeZone = null) {
if ($timeZone !== null && !$timeZone instanceof \DateTimeZone) {
$timeZone = new \DateTimeZone($timeZone);
}
/** @var \OC\DateTimeFormatter $formatter */
$formatter = \OC::$server->query('DateTimeFormatter');
if ($dateOnly) {
return $formatter->formatDate($timestamp, 'long', $timeZone);
}
return $formatter->formatDateTime($timestamp, 'long', 'long', $timeZone);
}
/**
* check if the current server configuration is suitable for ownCloud
*

View File

@ -159,7 +159,9 @@
<p class="cronlog inlineblock">
<?php if ($_['lastcron'] !== false):
$relative_time = relative_modified_date($_['lastcron']);
$absolute_time = OC_Util::formatDate($_['lastcron']);
$formatter = \OC::$server->getDateTimeFormatter();
$absolute_time = $formatter->formatDateTime($_['lastcron'], 'long', 'long');
if (time() - $_['lastcron'] <= 3600): ?>
<span class="status success"></span>
<span class="crondate" title="<?php p($absolute_time);?>">

View File

@ -38,70 +38,6 @@ class UtilTest extends \Test\TestCase {
$this->assertTrue(is_string($edition));
}
/**
* @group DB
*/
function testFormatDate() {
date_default_timezone_set("UTC");
$result = OC_Util::formatDate(1350129205);
$expected = 'October 13, 2012 at 11:53:25 AM GMT+0';
$this->assertEquals($expected, $result);
$result = OC_Util::formatDate(1102831200, true);
$expected = 'December 12, 2004';
$this->assertEquals($expected, $result);
}
/**
* @group DB
*/
function testFormatDateWithTZ() {
date_default_timezone_set("UTC");
$result = OC_Util::formatDate(1350129205, false, 'Europe/Berlin');
$expected = 'October 13, 2012 at 1:53:25 PM GMT+2';
$this->assertEquals($expected, $result);
}
/**
* @expectedException \Exception
*/
function testFormatDateWithInvalidTZ() {
OC_Util::formatDate(1350129205, false, 'Mordor/Barad-dûr');
}
public function formatDateWithTZFromSessionData() {
return array(
array(3, 'October 13, 2012 at 2:53:25 PM GMT+3', 'Etc/GMT-3'),
array(15, 'October 13, 2012 at 11:53:25 AM GMT+0', 'UTC'),
array(-13, 'October 13, 2012 at 11:53:25 AM GMT+0', 'UTC'),
array(9.5, 'October 13, 2012 at 9:23:25 PM GMT+9:30', 'Australia/Darwin'),
array(-4.5, 'October 13, 2012 at 7:23:25 AM GMT-4:30', 'America/Caracas'),
array(15.5, 'October 13, 2012 at 11:53:25 AM GMT+0', 'UTC'),
);
}
/**
* @dataProvider formatDateWithTZFromSessionData
* @group DB
*/
function testFormatDateWithTZFromSession($offset, $expected, $expectedTimeZone) {
date_default_timezone_set("UTC");
\OC::$server->getSession()->set('timezone', $offset);
$selectedTimeZone = \OC::$server->getDateTimeZone()->getTimeZone(1350129205);
$this->assertEquals($expectedTimeZone, $selectedTimeZone->getName());
$newDateTimeFormatter = new \OC\DateTimeFormatter($selectedTimeZone, \OC::$server->getL10N('lib', 'en'));
$this->overwriteService('DateTimeFormatter', $newDateTimeFormatter);
$result = OC_Util::formatDate(1350129205, false);
$this->assertEquals($expected, $result);
$this->restoreService('DateTimeFormatter');
}
function testSanitizeHTML() {
$badArray = [
'While it is unusual to pass an array',