Skip to content

Commit a46c50d

Browse files
committed
PsrCacheAdapter: conversion DateInterval -> seconds is not affected by timezone
1 parent 5557c92 commit a46c50d

3 files changed

Lines changed: 5 additions & 12 deletions

File tree

‎src/Bridges/Psr/PsrCacheAdapter.php‎

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,10 @@ public function has(string $key): bool
102102
private static function ttlToSeconds(null|int|DateInterval $ttl = null): ?int
103103
{
104104
if ($ttl instanceof DateInterval) {
105-
return self::dateIntervalToSeconds($ttl);
105+
$now = new \DateTimeImmutable('', new \DateTimeZone('UTC'));
106+
return $now->add($ttl)->getTimestamp() - $now->getTimestamp();
106107
}
107108

108109
return $ttl;
109110
}
110-
111-
112-
private static function dateIntervalToSeconds(DateInterval $dateInterval): int
113-
{
114-
$now = new \DateTimeImmutable;
115-
$expiresAt = $now->add($dateInterval);
116-
return $expiresAt->getTimestamp() - $now->getTimestamp();
117-
}
118111
}

‎tests/Bridges.Psr/PsrCacheAdapter.set.phpt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ test('set ttl DateInterval', function () {
4040
Assert::same([
4141
'data' => '3',
4242
'dependencies' => [
43-
Caching\Cache::Expire => (new DateTime)->add($interval)->getTimestamp() - (new DateTime)->getTimestamp(),
43+
Caching\Cache::Expire => ($dt = new DateTimeImmutable('', new DateTimeZone('UTC')))->add($interval)->getTimestamp() - $dt->getTimestamp(),
4444
],
4545
], $storage->read('test'));
4646
});

‎tests/Bridges.Psr/PsrCacheAdapter.setMultiple.phpt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ test('set multiple ttl DateInterval', function () {
5454
Assert::same([
5555
'data' => '1',
5656
'dependencies' => [
57-
Caching\Cache::Expire => (new DateTime)->add($interval)->getTimestamp() - (new DateTime)->getTimestamp(),
57+
Caching\Cache::Expire => ($dt = new DateTimeImmutable('', new DateTimeZone('UTC')))->add($interval)->getTimestamp() - $dt->getTimestamp(),
5858
],
5959
], $storage->read('test1'));
6060

6161
Assert::same([
6262
'data' => '2',
6363
'dependencies' => [
64-
Caching\Cache::Expire => (new DateTime)->add($interval)->getTimestamp() - (new DateTime)->getTimestamp(),
64+
Caching\Cache::Expire => ($dt = new DateTimeImmutable('', new DateTimeZone('UTC')))->add($interval)->getTimestamp() - $dt->getTimestamp(),
6565
],
6666
], $storage->read('test2'));
6767
});

0 commit comments

Comments
 (0)