mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-27 17:22:42 +01:00
0a62f13464
Summary: Ran `arc lint --apply-patches --everything` over rP, mainly to change double quotes to single quotes where appropriate. These changes also validate that the `ArcanistXHPASTLinter::LINT_DOUBLE_QUOTE` rule is working as expected. Test Plan: Eyeballed it. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: epriestley, Korvin, hach-que Differential Revision: https://secure.phabricator.com/D9431
61 lines
1.4 KiB
PHP
61 lines
1.4 KiB
PHP
<?php
|
|
|
|
final class PhabricatorTime {
|
|
|
|
private static $stack = array();
|
|
private static $originalZone;
|
|
|
|
public static function pushTime($epoch, $timezone) {
|
|
if (empty(self::$stack)) {
|
|
self::$originalZone = date_default_timezone_get();
|
|
}
|
|
|
|
$ok = date_default_timezone_set($timezone);
|
|
if (!$ok) {
|
|
throw new Exception("Invalid timezone '{$timezone}'!");
|
|
}
|
|
|
|
self::$stack[] = array(
|
|
'epoch' => $epoch,
|
|
'timezone' => $timezone,
|
|
);
|
|
|
|
return new PhabricatorTimeGuard(last_key(self::$stack));
|
|
}
|
|
|
|
public static function popTime($key) {
|
|
if ($key !== last_key(self::$stack)) {
|
|
throw new Exception('PhabricatorTime::popTime with bad key.');
|
|
}
|
|
array_pop(self::$stack);
|
|
|
|
if (empty(self::$stack)) {
|
|
date_default_timezone_set(self::$originalZone);
|
|
} else {
|
|
$frame = end(self::$stack);
|
|
date_default_timezone_set($frame['timezone']);
|
|
}
|
|
}
|
|
|
|
public static function getNow() {
|
|
if (self::$stack) {
|
|
$frame = end(self::$stack);
|
|
return $frame['epoch'];
|
|
}
|
|
return time();
|
|
}
|
|
|
|
public static function parseLocalTime($time, PhabricatorUser $user) {
|
|
$old_zone = date_default_timezone_get();
|
|
|
|
date_default_timezone_set($user->getTimezoneIdentifier());
|
|
$timestamp = (int)strtotime($time, PhabricatorTime::getNow());
|
|
if ($timestamp <= 0) {
|
|
$timestamp = null;
|
|
}
|
|
date_default_timezone_set($old_zone);
|
|
|
|
return $timestamp;
|
|
}
|
|
|
|
}
|