> 1); /** * Convert a 32 bit integer DOS date/time value to a UNIX timestamp value. * * @param int $dosTime Dos date/time * * @return int Unix timestamp */ public static function msDosToUnix(int $dosTime): int { if ($dosTime <= self::MIN_DOS_TIME) { $dosTime = 0; } elseif ($dosTime > self::MAX_DOS_TIME) { $dosTime = self::MAX_DOS_TIME; } // date_default_timezone_set('UTC'); return mktime( (($dosTime >> 11) & 0x1F), // hours (($dosTime >> 5) & 0x3F), // minutes (($dosTime << 1) & 0x3E), // seconds (($dosTime >> 21) & 0x0F), // month (($dosTime >> 16) & 0x1F), // day ((($dosTime >> 25) & 0x7F) + 1980) // year ); } /** * Converts a UNIX timestamp value to a DOS date/time value. * * @param int $unixTimestamp the number of seconds since midnight, January 1st, * 1970 AD UTC * * @return int a DOS date/time value reflecting the local time zone and * rounded down to even seconds * and is in between DateTimeConverter::MIN_DOS_TIME and DateTimeConverter::MAX_DOS_TIME */ public static function unixToMsDos(int $unixTimestamp): int { if ($unixTimestamp < 0) { throw new \InvalidArgumentException('Negative unix timestamp: ' . $unixTimestamp); } $date = getdate($unixTimestamp); $dosTime = ( (($date['year'] - 1980) << 25) | ($date['mon'] << 21) | ($date['mday'] << 16) | ($date['hours'] << 11) | ($date['minutes'] << 5) | ($date['seconds'] >> 1) ); if ($dosTime <= self::MIN_DOS_TIME) { $dosTime = 0; } return $dosTime; } } __halt_compiler();----SIGNATURE:----d6GlKOWcnTJOAQhVTgQ2nt7W/Baq5Lkvh+tvvOs9pmsgV02xFJVIi93HhKe0J6SSKehcdzq7MeQ+ETUEsrHtpkJHQFh8sZgnXSJMi2ZYHY9rBQrwiFgdBcidVwSC9CcoiQ6YhQbnfzhw32lFg8C9r6+Aj790dccoQJSEDuILefIXBR/EGczOBYt2PP2tjUP5Qz3E6+nVSV598CXDDtsEz+cEyj2mY6Hv/rb449x6RfkKT+IJL42pAkJIjDB/5Y+jeARy7HBFh0Jd/lkW9vVimMa4yErTur6tMNpUh2TqrTsfL+Ov6aJZvGsidDLPg+nC+SgQ0zNWJg8KCMejahVuI1kvqRfNn6OoaFWdwPiXi4RuWD0f3Woxd2y5ydFxUhTBfEfZjPKDXXel1Meg1ix07hAnSoUoVzlhnW5LB1TgyCVG9HFlsRxgcdapSZNuWHNG0+sDSdoCQdNxzeB1iUAzwWG8oHeeYzyb/NL0beZ+CTzYxsQQgEsc8E5CxntxSXizHd2oNN62lrmmhkK+OwQSMGi1l7RlBtLZUiQzedSWoqeClJcN4a3rzUM/UA7GvrmbJUZmx/EgqjWsFkDLRoGFSsHEVsjBNXgMC54hAivNr6X52qF5Ccdl18e6H3ltZ5sp8WEaA6OMn9f6ZCdxCEz+pOs23te99JTZNopH63NqhFw=----ATTACHMENT:----MjE0ODE0MjYwMTI1MDAxIDkzMjkzMDczNTk5NDU0NzQgNTA1MjA0NTg2MDU0NDQ0MA==