File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2626 "assoconnect/php-date" : " ^2.11" ,
2727 "doctrine/dbal" : " ^2.10|^3.0" ,
2828 "symfony/serializer" : " ^6.0|^7.0" ,
29- "twig/twig" : " ^3"
29+ "twig/twig" : " ^3" ,
30+ "symfony/clock" : " ^7.3"
3031 },
3132 "config" : {
3233 "allow-plugins" : {
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace AssoConnect \PHPDateBundle ;
6+
7+ use AssoConnect \PHPDate \AbsoluteDate ;
8+ use Symfony \Component \Clock \DatePoint ;
9+
10+ class AbsoluteDateClock
11+ {
12+ public static function now (\DateTimeZone $ timeZone ): AbsoluteDate
13+ {
14+ return self ::relative ('now ' , $ timeZone );
15+ }
16+
17+ /**
18+ * @throws \DateMalformedStringException
19+ */
20+ public static function relative (string $ relative = 'now ' , \DateTimeZone $ timezone = null ): AbsoluteDate
21+ {
22+ return AbsoluteDate::createInTimezone ($ timezone ?? new \DateTimeZone ('UTC ' ), new DatePoint ($ relative ));
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace AssoConnect \PHPDateBundle \Tests ;
6+
7+ use AssoConnect \PHPDateBundle \AbsoluteDateClock ;
8+ use PHPUnit \Framework \TestCase ;
9+ use Symfony \Component \Clock \Test \ClockSensitiveTrait ;
10+
11+ class AbsoluteDateClockTest extends TestCase
12+ {
13+ use ClockSensitiveTrait;
14+
15+ protected function setUp (): void
16+ {
17+ self ::mockTime ('2025-03-12 10:11:12 ' );
18+ }
19+
20+ public function testNow (): void
21+ {
22+ self ::assertEquals (
23+ '2025-03-12 ' ,
24+ AbsoluteDateClock::now (new \DateTimeZone ('Europe/Paris ' ))
25+ );
26+ }
27+
28+ public function testRelative (): void
29+ {
30+ self ::assertEquals (
31+ '2025-03-11 ' ,
32+ AbsoluteDateClock::relative ('-1day ' , new \DateTimeZone ('Europe/Paris ' ))
33+ );
34+ }
35+ }
You can’t perform that action at this time.
0 commit comments