mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Remove unnecessary timezone offset manipulation
This commit is contained in:
parent
c269ae29e6
commit
7911bb9052
2 changed files with 35 additions and 16 deletions
|
@ -966,23 +966,32 @@ class CakeTimeTest extends CakeTestCase {
|
||||||
*/
|
*/
|
||||||
public function testFromStringWithDateTime() {
|
public function testFromStringWithDateTime() {
|
||||||
date_default_timezone_set('UTC');
|
date_default_timezone_set('UTC');
|
||||||
|
|
||||||
$date = new DateTime('+1 hour', new DateTimeZone('America/New_York'));
|
$date = new DateTime('+1 hour', new DateTimeZone('America/New_York'));
|
||||||
$result = $this->Time->fromString($date, 'UTC');
|
$result = $this->Time->fromString($date, 'UTC');
|
||||||
$date->setTimezone(new DateTimeZone('UTC'));
|
$date->setTimezone(new DateTimeZone('UTC'));
|
||||||
$expected = $date->format('U') + $date->getOffset();
|
$expected = $date->format('U') + $date->getOffset();
|
||||||
|
|
||||||
$this->assertWithinMargin($expected, $result, 1);
|
$this->assertWithinMargin($expected, $result, 1);
|
||||||
|
$this->_restoreSystemTimezone();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFromStringWithDateTimeAsia() {
|
||||||
date_default_timezone_set('Australia/Melbourne');
|
date_default_timezone_set('Australia/Melbourne');
|
||||||
|
|
||||||
$date = new DateTime('+1 hour', new DateTimeZone('America/New_York'));
|
$date = new DateTime('+1 hour', new DateTimeZone('America/New_York'));
|
||||||
$result = $this->Time->fromString($date, 'Asia/Kuwait');
|
$result = $this->Time->fromString($date, 'Asia/Kuwait');
|
||||||
|
|
||||||
$date->setTimezone(new DateTimeZone('Asia/Kuwait'));
|
$date->setTimezone(new DateTimeZone('Asia/Kuwait'));
|
||||||
$expected = $date->format('U') + $date->getOffset();
|
$expected = $date->format('U') + $date->getOffset();
|
||||||
$this->assertWithinMargin($expected, $result, 1);
|
$this->assertWithinMargin($expected, $result, 1);
|
||||||
|
$this->_restoreSystemTimezone();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFromStringTimezoneConversionToUTC() {
|
||||||
|
date_default_timezone_set('Europe/Copenhagen'); // server timezone
|
||||||
|
$clientTimeZone = new DateTimeZone('Asia/Bangkok');
|
||||||
|
$clientDateTime = new DateTime('2019-01-31 10:00:00', $clientTimeZone);
|
||||||
|
// Convert to UTC.
|
||||||
|
$actual = CakeTime::fromString($clientDateTime, 'UTC');
|
||||||
|
$expected = 1548900000; // '2019-01-31 03:00:00' timestamp
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
$this->_restoreSystemTimezone();
|
$this->_restoreSystemTimezone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1087,6 +1096,15 @@ class CakeTimeTest extends CakeTestCase {
|
||||||
$this->assertEquals($expected, $result);
|
$this->assertEquals($expected, $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testConvertTimezoneConversionToUTC() {
|
||||||
|
date_default_timezone_set('Europe/Copenhagen'); // server timezone
|
||||||
|
$serverTime = 1548903600; // '2019-01-31 04:00:00' timestamp
|
||||||
|
$actual = CakeTime::convert($serverTime, 'UTC');
|
||||||
|
$expected = 1548900000; // '2019-01-31 03:00:00' timestamp
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
$this->_restoreSystemTimezone();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test convert %e on Windows.
|
* test convert %e on Windows.
|
||||||
*
|
*
|
||||||
|
@ -1149,6 +1167,16 @@ class CakeTimeTest extends CakeTestCase {
|
||||||
$this->assertEquals($expected, $result);
|
$this->assertEquals($expected, $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testI18nFormatTimezoneConversionToUTC() {
|
||||||
|
date_default_timezone_set('Europe/Copenhagen'); // server timezone
|
||||||
|
$clientTimeZone = new DateTimeZone('Asia/Bangkok');
|
||||||
|
$clientDateTime = new DateTime('2019-01-31 10:00:00', $clientTimeZone);
|
||||||
|
// Convert to UTC.
|
||||||
|
$actual = CakeTime::i18nFormat($clientDateTime, '%Y-%m-%d %H:%M:%S', false, 'UTC');
|
||||||
|
$this->assertEquals('2019-01-31 03:00:00', $actual);
|
||||||
|
$this->_restoreSystemTimezone();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test new format() syntax which inverts first and second parameters
|
* test new format() syntax which inverts first and second parameters
|
||||||
*
|
*
|
||||||
|
@ -1226,23 +1254,14 @@ class CakeTimeTest extends CakeTestCase {
|
||||||
$this->assertEquals($expected->format('Y-m-d H:i'), $converted);
|
$this->assertEquals($expected->format('Y-m-d H:i'), $converted);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testTimezoneConversionToUTC() {
|
public function testFormatTimezoneConversionToUTC() {
|
||||||
date_default_timezone_set('Europe/Copenhagen'); // server timezone
|
date_default_timezone_set('Europe/Copenhagen'); // server timezone
|
||||||
$clientTimeZone = new DateTimeZone('Asia/Bangkok');
|
$clientTimeZone = new DateTimeZone('Asia/Bangkok');
|
||||||
$clientDateTime = new DateTime('2019-01-31 10:00:00', $clientTimeZone);
|
$clientDateTime = new DateTime('2019-01-31 10:00:00', $clientTimeZone);
|
||||||
// Convert to UTC.
|
// Convert to UTC.
|
||||||
$actual = CakeTime::format($clientDateTime, '%Y-%m-%d %H:%M:%S', false, 'UTC');
|
$actual = CakeTime::format($clientDateTime, '%Y-%m-%d %H:%M:%S', false, 'UTC');
|
||||||
$this->assertEquals('2019-01-31 03:00:00', $actual);
|
$this->assertEquals('2019-01-31 03:00:00', $actual);
|
||||||
}
|
$this->_restoreSystemTimezone();
|
||||||
|
|
||||||
public function testTimezoneConversionToUTCPlainPHP() {
|
|
||||||
date_default_timezone_set('Europe/Copenhagen'); // server timezone
|
|
||||||
$clientTimeZone = new DateTimeZone('Asia/Bangkok');
|
|
||||||
$clientDateTime = new DateTime('2019-01-31 10:00:00', $clientTimeZone);
|
|
||||||
// Convert to UTC.
|
|
||||||
$clientDateTime->setTimezone(new DateTimeZone('UTC'));
|
|
||||||
$actual = $clientDateTime->format('Y-m-d H:i:s');
|
|
||||||
$this->assertEquals('2019-01-31 03:00:00', $actual);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -327,7 +327,7 @@ class CakeTime {
|
||||||
) {
|
) {
|
||||||
$clone = clone $dateString;
|
$clone = clone $dateString;
|
||||||
$clone->setTimezone(new DateTimeZone(date_default_timezone_get()));
|
$clone->setTimezone(new DateTimeZone(date_default_timezone_get()));
|
||||||
$date = (int)$clone->format('U') + $clone->getOffset();
|
$date = (int)$clone->format('U')/* + $clone->getOffset()*/;
|
||||||
} elseif ($dateString instanceof DateTime) {
|
} elseif ($dateString instanceof DateTime) {
|
||||||
$date = (int)$dateString->format('U');
|
$date = (int)$dateString->format('U');
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue