|
|
<?php |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Eluceo\iCal\Util; |
|
|
|
|
|
class DateUtil |
|
|
{ |
|
|
public static function getDefaultParams(\DateTimeInterface $dateTime = null, $noTime = false, $useTimezone = false, $timezoneString = '') |
|
|
{ |
|
|
$params = []; |
|
|
|
|
|
if ($useTimezone && $noTime === false) { |
|
|
$timeZone = $timezoneString === '' ? $dateTime->getTimezone()->getName() : $timezoneString; |
|
|
$params['TZID'] = $timeZone; |
|
|
} |
|
|
|
|
|
if ($noTime) { |
|
|
$params['VALUE'] = 'DATE'; |
|
|
} |
|
|
|
|
|
return $params; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function getDateString(\DateTimeInterface $dateTime = null, $noTime = false, $useTimezone = false, $useUtc = false) |
|
|
{ |
|
|
if (empty($dateTime)) { |
|
|
$dateTime = new \DateTimeImmutable(); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!$noTime && $useUtc && !$useTimezone) { |
|
|
$dateTime = clone $dateTime; |
|
|
$dateTime = $dateTime->setTimezone(new \DateTimeZone('UTC')); |
|
|
} |
|
|
|
|
|
return $dateTime->format(self::getDateFormat($noTime, $useTimezone, $useUtc)); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function getDateFormat($noTime = false, $useTimezone = false, $useUtc = false) |
|
|
{ |
|
|
|
|
|
if ($useTimezone || !$useUtc) { |
|
|
return $noTime ? 'Ymd' : 'Ymd\THis'; |
|
|
} |
|
|
|
|
|
return $noTime ? 'Ymd' : 'Ymd\THis\Z'; |
|
|
} |
|
|
} |
|
|
|