mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Working on timezone conversions
This commit is contained in:
parent
d3f2c4a571
commit
e4d3fa523a
@ -12,27 +12,17 @@ trait MakesTimezoneAdjustment
|
||||
public function createClientDate($utc_date , $timezone)
|
||||
{
|
||||
|
||||
$userTimezone = new \DateTimeZone($timezone);
|
||||
$gmtTimezone = new \DateTimeZone('GMT');
|
||||
//$myDateTime = new \DateTime($utc_date, $gmtTimezone);
|
||||
$offset = $userTimezone->getOffset($utc_date);
|
||||
$myInterval = \DateInterval::createFromDateString((string)$offset . 'seconds');
|
||||
$utc_date->add($myInterval);
|
||||
$utc_date->setTimezone(new \DateTimeZone($timezone));
|
||||
|
||||
return $utc_date;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function createUtcDate($client_date, $timezone)
|
||||
public function createUtcDate($client_date)
|
||||
{
|
||||
|
||||
$userTimezone = new \DateTimeZone($timezone);
|
||||
$gmtTimezone = new \DateTimeZone('GMT');
|
||||
//$clientDateTime = new \DateTime($client_date, $userTimezone);
|
||||
$offset = $userTimezone->getOffset($client_date);
|
||||
$myInterval = \DateInterval::createFromDateString((string)$offset . 'seconds');
|
||||
$client_date->add($myInterval);
|
||||
$client_date->setTimezone(new \DateTimeZone('GMT'));
|
||||
|
||||
return $client_date;
|
||||
}
|
||||
|
@ -15,16 +15,16 @@ class TimezoneTraitTest extends TestCase
|
||||
use MakesTimezoneAdjustment;
|
||||
|
||||
|
||||
public function testConvertClientDateToUTCDateTimeTickOverNextDay()
|
||||
public function testConvertClientDateToUTCDateTimeTickOverSameDay()
|
||||
{
|
||||
|
||||
$date_src = '2007-04-19 22:59';
|
||||
$date_src = '2007-04-19 23:59';
|
||||
$client_timezone = 'Europe/Amsterdam'; // +1 UTC
|
||||
$date_time = new \DateTime($date_src, new \DateTimeZone($client_timezone));
|
||||
|
||||
$utc_date = $this->createClientDate($date_time, $client_timezone);
|
||||
$utc_date = $this->createUtcDate($date_time, $client_timezone);
|
||||
|
||||
$this->assertEquals($utc_date->format('Y-m-d'), '2007-04-19');
|
||||
$this->assertEquals('2007-04-19 21:59', $date_time->format('Y-m-d H:i'));
|
||||
}
|
||||
|
||||
public function testConvertClientDateToUTCDateTimeSameDay()
|
||||
@ -39,4 +39,30 @@ class TimezoneTraitTest extends TestCase
|
||||
$this->assertEquals($utc_date->format('Y-m-d'), '2007-04-19');
|
||||
}
|
||||
|
||||
|
||||
public function testConvertClientDateToUTCDateTimeTickOverNextDay()
|
||||
{
|
||||
|
||||
$date_src = '2007-04-19 23:59';
|
||||
$client_timezone = 'Atlantic/Cape_Verde'; // +1 UTC
|
||||
$date_time = new \DateTime($date_src, new \DateTimeZone($client_timezone));
|
||||
|
||||
$utc_date = $this->createUtcDate($date_time, $client_timezone);
|
||||
|
||||
$this->assertEquals('2007-04-20 00:59', $date_time->format('Y-m-d H:i'));
|
||||
}
|
||||
|
||||
public function testConvertClientDateToUTCDateTimeSameDayDiffTimeZone()
|
||||
{
|
||||
|
||||
$date_src = '2007-04-19 22:59';
|
||||
$client_timezone = 'Atlantic/Cape_Verde'; // +1 UTC
|
||||
$date_time = new \DateTime($date_src, new \DateTimeZone($client_timezone));
|
||||
|
||||
$utc_date = $this->createUtcDate($date_time, $client_timezone);
|
||||
|
||||
$this->assertEquals('2007-04-19 23:59', $date_time->format('Y-m-d H:i'));
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user