Server : Apache System : Linux server1.cgrithy.com 3.10.0-1160.95.1.el7.x86_64 #1 SMP Mon Jul 24 13:59:37 UTC 2023 x86_64 User : nobody ( 99) PHP Version : 8.1.23 Disable Function : NONE Directory : /home/dnlcambodia/www/dnl_dashboard/Export/vendor/maennchen/zipstream-php/src/ |
<?php declare(strict_types=1); namespace ZipStream; use DateInterval; use DateTimeImmutable; use DateTimeInterface; use ZipStream\Exception\DosTimeOverflowException; /** * @internal */ abstract class Time { private const DOS_MINIMUM_DATE = '1980-01-01 00:00:00Z'; public static function dateTimeToDosTime(DateTimeInterface $dateTime): int { $dosMinimumDate = new DateTimeImmutable(self::DOS_MINIMUM_DATE); if ($dateTime->getTimestamp() < $dosMinimumDate->getTimestamp()) { throw new DosTimeOverflowException(dateTime: $dateTime); } $dateTime = DateTimeImmutable::createFromInterface($dateTime)->sub(new DateInterval('P1980Y')); ['year' => $year, 'mon' => $month, 'mday' => $day, 'hours' => $hour, 'minutes' => $minute, 'seconds' => $second ] = getdate($dateTime->getTimestamp()); return ($year << 25) | ($month << 21) | ($day << 16) | ($hour << 11) | ($minute << 5) | ($second >> 1); } }