/** * Given a utc time stamp, convert the time stamp to a timezone adjusted time stamp. * The time zone is based on the current user's time zone. */ public function convertFromUtcTimeStampForCurrentUser($utcTimeStamp) { assert('is_int($utcTimeStamp)'); $timeZone = $this->getForCurrentUser(); return DateTimeUtil::convertFromUtcUnixStampByTimeZone($utcTimeStamp, $timeZone); }
public function testConvertFromUtcUnixStampByTimeZone() { $timeZoneObject = new DateTimeZone('America/Chicago'); $offset = $timeZoneObject->getOffset(new DateTime()); $this->assertTrue($offset == -18000 || $offset == -21600); $utcTimeStamp = time(); $adjustedTimeStamp = DateTimeUtil::convertFromUtcUnixStampByTimeZone($utcTimeStamp, 'America/Chicago'); $this->assertEquals($utcTimeStamp + $offset, $adjustedTimeStamp); //other locales $timeZoneObject = new DateTimeZone('America/New_York'); $offset = $timeZoneObject->getOffset(new DateTime()); $this->assertTrue($offset == -18000 || $offset == -14400); $adjustedTimeStamp = DateTimeUtil::convertFromUtcUnixStampByTimeZone($utcTimeStamp, 'America/New_York'); $this->assertEquals($utcTimeStamp + $offset, $adjustedTimeStamp); }