mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-03 08:41:39 +09:00
Fix incorrect timestamp display when timestamp is zero #2621
This commit is contained in:
parent
8e5480674d
commit
0c8aa306ec
2 changed files with 20 additions and 8 deletions
|
|
@ -28,11 +28,11 @@ class DateTime
|
|||
{
|
||||
if ($format === self::FORMAT_RELATIVE)
|
||||
{
|
||||
return self::getRelativeTimestamp($timestamp ?: time());
|
||||
return self::getRelativeTimestamp($timestamp ?? time());
|
||||
}
|
||||
|
||||
$offset = Config::get('locale.internal_timezone') ?: date('Z', $timestamp);
|
||||
return gmdate($format, ($timestamp ?: time()) + $offset);
|
||||
$offset = Config::get('locale.internal_timezone') ?: date('Z', $timestamp ?? time());
|
||||
return gmdate($format, ($timestamp ?? time()) + $offset);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -46,7 +46,7 @@ class DateTime
|
|||
{
|
||||
if ($format === self::FORMAT_RELATIVE)
|
||||
{
|
||||
return self::getRelativeTimestamp($timestamp ?: time());
|
||||
return self::getRelativeTimestamp($timestamp ?? time());
|
||||
}
|
||||
|
||||
$timezone = self::getTimezoneForCurrentUser();
|
||||
|
|
@ -55,7 +55,7 @@ class DateTime
|
|||
self::$_timezones[$timezone] = new \DateTimeZone($timezone);
|
||||
}
|
||||
$datetime = new \DateTime();
|
||||
$datetime->setTimestamp($timestamp ?: time());
|
||||
$datetime->setTimestamp($timestamp ?? time());
|
||||
$datetime->setTimezone(self::$_timezones[$timezone]);
|
||||
return $datetime->format($format);
|
||||
}
|
||||
|
|
@ -123,7 +123,7 @@ class DateTime
|
|||
self::$_timezones[$timezone] = new \DateTimeZone($timezone);
|
||||
}
|
||||
$datetime = new \DateTime();
|
||||
$datetime->setTimestamp($timestamp ?: time());
|
||||
$datetime->setTimestamp($timestamp ?? time());
|
||||
$datetime->setTimezone(self::$_timezones[$timezone]);
|
||||
return $datetime->getOffset();
|
||||
}
|
||||
|
|
@ -137,7 +137,7 @@ class DateTime
|
|||
*/
|
||||
public static function getTimezoneOffsetFromInternal(string $timezone, ?int $timestamp = null): int
|
||||
{
|
||||
return self::getTimezoneOffset($timezone, $timestamp ?: time()) - Config::get('locale.internal_timezone');
|
||||
return self::getTimezoneOffset($timezone, $timestamp ?? time()) - Config::get('locale.internal_timezone');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -192,7 +192,7 @@ class DateTime
|
|||
*/
|
||||
public static function getRelativeTimestamp(?int $timestamp = null): string
|
||||
{
|
||||
$diff = \RX_TIME - intval($timestamp ?: time());
|
||||
$diff = \RX_TIME - intval($timestamp ?? time());
|
||||
$langs = lang('common.time_gap');
|
||||
|
||||
if ($diff < 3)
|
||||
|
|
|
|||
|
|
@ -113,6 +113,18 @@ class DateTimeTest extends \Codeception\Test\Unit
|
|||
Rhymix\Framework\Config::set('locale.internal_timezone', 32400);
|
||||
$this->assertEquals($expected, zdate('19600419', 'Y-m-d H:i:s'));
|
||||
|
||||
// Test special dates.
|
||||
Rhymix\Framework\Config::set('locale.internal_timezone', 32400);
|
||||
$expected = '1970-01-01 09:00:00';
|
||||
$this->assertEquals($expected, zdate('19700101', 'Y-m-d H:i:s'));
|
||||
$expected = '1969-12-31 15:00:00';
|
||||
$this->assertEquals($expected, zdate('1969-12-31 15:00:00', 'Y-m-d H:i:s'));
|
||||
Rhymix\Framework\Config::set('locale.internal_timezone', 10800);
|
||||
$expected = '1970-01-01 06:00:00';
|
||||
$this->assertEquals($expected, zdate('19700101000000', 'Y-m-d H:i:s'));
|
||||
$expected = '1970-01-01 00:00:00';
|
||||
$this->assertEquals($expected, zdate('19691231180000', 'Y-m-d H:i:s'));
|
||||
|
||||
// Restore the internal timezone.
|
||||
Rhymix\Framework\Config::set('locale.internal_timezone', 10800);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue