getTimestamp() : 0; } /** * Parse date string formated as "10-Jan-2012 01:58:17 -0800" * IMAP INTERNALDATE Format * * @param string $sDateTime * * @return int */ public static function ParseInternalDateString($sDateTime) { $sDateTime = \trim($sDateTime); if (\preg_match('/^[a-z]{2,4}, /i', $sDateTime)) // RFC2822 { return \MailSo\Base\DateTimeHelper::ParseRFC2822DateString($sDateTime); } $oDateTime = \DateTime::createFromFormat('d-M-Y H:i:s O', $sDateTime, \MailSo\Base\DateTimeHelper::GetUtcTimeZoneObject()); return $oDateTime ? $oDateTime->getTimestamp() : 0; } /** * Parse date string formated as "2011-06-14 23:59:59 +0400" * * @param string $sDateTime * * @return int */ public static function ParseDateStringType1($sDateTime) { $oDateTime = \DateTime::createFromFormat('Y-m-d H:i:s O', \trim($sDateTime), \MailSo\Base\DateTimeHelper::GetUtcTimeZoneObject()); return $oDateTime ? $oDateTime->getTimestamp() : 0; } /** * Parse date string formated as "2015-05-08T14:32:18.483-07:00" * * @param string $sDateTime * * @return int */ public static function TryToParseSpecEtagFormat($sDateTime) { $sDateTime = \trim(\preg_replace('/ \([a-zA-Z0-9]+\)$/', '', \trim($sDateTime))); $sDateTime = \trim(\preg_replace('/(:[\d]{2})\.[\d]{3}/', '$1', \trim($sDateTime))); $sDateTime = \trim(\preg_replace('/(-[\d]{2})T([\d]{2}:)/', '$1 $2', \trim($sDateTime))); $sDateTime = \trim(\preg_replace('/([\-+][\d]{2}):([\d]{2})$/', ' $1$2', \trim($sDateTime))); return \MailSo\Base\DateTimeHelper::ParseDateStringType1($sDateTime); } }