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)
|
if ($format === self::FORMAT_RELATIVE)
|
||||||
{
|
{
|
||||||
return self::getRelativeTimestamp($timestamp ?: time());
|
return self::getRelativeTimestamp($timestamp ?? time());
|
||||||
}
|
}
|
||||||
|
|
||||||
$offset = Config::get('locale.internal_timezone') ?: date('Z', $timestamp);
|
$offset = Config::get('locale.internal_timezone') ?: date('Z', $timestamp ?? time());
|
||||||
return gmdate($format, ($timestamp ?: time()) + $offset);
|
return gmdate($format, ($timestamp ?? time()) + $offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -46,7 +46,7 @@ class DateTime
|
||||||
{
|
{
|
||||||
if ($format === self::FORMAT_RELATIVE)
|
if ($format === self::FORMAT_RELATIVE)
|
||||||
{
|
{
|
||||||
return self::getRelativeTimestamp($timestamp ?: time());
|
return self::getRelativeTimestamp($timestamp ?? time());
|
||||||
}
|
}
|
||||||
|
|
||||||
$timezone = self::getTimezoneForCurrentUser();
|
$timezone = self::getTimezoneForCurrentUser();
|
||||||
|
|
@ -55,7 +55,7 @@ class DateTime
|
||||||
self::$_timezones[$timezone] = new \DateTimeZone($timezone);
|
self::$_timezones[$timezone] = new \DateTimeZone($timezone);
|
||||||
}
|
}
|
||||||
$datetime = new \DateTime();
|
$datetime = new \DateTime();
|
||||||
$datetime->setTimestamp($timestamp ?: time());
|
$datetime->setTimestamp($timestamp ?? time());
|
||||||
$datetime->setTimezone(self::$_timezones[$timezone]);
|
$datetime->setTimezone(self::$_timezones[$timezone]);
|
||||||
return $datetime->format($format);
|
return $datetime->format($format);
|
||||||
}
|
}
|
||||||
|
|
@ -123,7 +123,7 @@ class DateTime
|
||||||
self::$_timezones[$timezone] = new \DateTimeZone($timezone);
|
self::$_timezones[$timezone] = new \DateTimeZone($timezone);
|
||||||
}
|
}
|
||||||
$datetime = new \DateTime();
|
$datetime = new \DateTime();
|
||||||
$datetime->setTimestamp($timestamp ?: time());
|
$datetime->setTimestamp($timestamp ?? time());
|
||||||
$datetime->setTimezone(self::$_timezones[$timezone]);
|
$datetime->setTimezone(self::$_timezones[$timezone]);
|
||||||
return $datetime->getOffset();
|
return $datetime->getOffset();
|
||||||
}
|
}
|
||||||
|
|
@ -137,7 +137,7 @@ class DateTime
|
||||||
*/
|
*/
|
||||||
public static function getTimezoneOffsetFromInternal(string $timezone, ?int $timestamp = null): int
|
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
|
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');
|
$langs = lang('common.time_gap');
|
||||||
|
|
||||||
if ($diff < 3)
|
if ($diff < 3)
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,18 @@ class DateTimeTest extends \Codeception\Test\Unit
|
||||||
Rhymix\Framework\Config::set('locale.internal_timezone', 32400);
|
Rhymix\Framework\Config::set('locale.internal_timezone', 32400);
|
||||||
$this->assertEquals($expected, zdate('19600419', 'Y-m-d H:i:s'));
|
$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.
|
// Restore the internal timezone.
|
||||||
Rhymix\Framework\Config::set('locale.internal_timezone', 10800);
|
Rhymix\Framework\Config::set('locale.internal_timezone', 10800);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue