Relative local time
This commit is contained in:
18
inc/Spot.php
18
inc/Spot.php
@@ -117,7 +117,7 @@ class Spot extends Main
|
||||
'site_time' => "TIMESTAMP DEFAULT 0", //DEFAULT 0 removes auto-set to current time
|
||||
'status' => "VARCHAR(10)",
|
||||
'taken_on' => "TIMESTAMP DEFAULT 0",
|
||||
'timezone' => "CHAR(64)", //see mysql.time_zone_name
|
||||
'timezone' => "CHAR(64) NOT NULL", //see mysql.time_zone_name
|
||||
'token' => "VARCHAR(4096)",
|
||||
'type' => "VARCHAR(20)",
|
||||
'unix_time' => "INT",
|
||||
@@ -428,7 +428,11 @@ class Spot extends Main
|
||||
$asData['unix_time'] = (int) $iTime;
|
||||
$asData['relative_time'] = Toolbox::getDateTimeDesc($iTime, $this->oLang->getLanguage());
|
||||
$asData['formatted_time'] = $this->getTimeFormat($iTime);
|
||||
if($sTimeZone != '') $asData['formatted_time_local'] = $this->getTimeFormat($iTime, $sTimeZone);
|
||||
|
||||
if($sTimeZone != '') {
|
||||
$asData['formatted_time_local'] = $this->getTimeFormat($iTime, $sTimeZone);
|
||||
$asData['day_offset'] = self::getTimeZoneDayOffset($iTime, $sTimeZone);
|
||||
}
|
||||
}
|
||||
|
||||
private function getFeedConstraints($sType, $sTimeField='site_time', $sReturnFormat='array') {
|
||||
@@ -763,7 +767,7 @@ class Spot extends Main
|
||||
}
|
||||
|
||||
public function getTimeFormat($iTime, $sTimeZone='') {
|
||||
if($sTimeZone=='') $sTimeZone = date_default_timezone_get();
|
||||
if($sTimeZone == '') $sTimeZone = date_default_timezone_get();
|
||||
|
||||
$oDate = new \DateTime('@'.$iTime);
|
||||
$oDate->setTimezone(new \DateTimeZone($sTimeZone));
|
||||
@@ -773,6 +777,14 @@ class Spot extends Main
|
||||
return $this->oLang->getTranslation('date_time', array($sDate, $sTime));
|
||||
}
|
||||
|
||||
public static function getTimeZoneDayOffset($iTime, $sLocalTimeZone) {
|
||||
$sSiteTimeZone = date_default_timezone_get();
|
||||
$iLocalDate = (int) (new \DateTime('@'.$iTime))->setTimezone(new \DateTimeZone($sLocalTimeZone))->format('Ymd');
|
||||
$iSiteDate = (int) (new \DateTime('@'.$iTime))->setTimezone(new \DateTimeZone($sSiteTimeZone ))->format('Ymd');
|
||||
|
||||
return ($iLocalDate == $iSiteDate)?'0':(($iLocalDate > $iSiteDate)?'+1':'-1');
|
||||
}
|
||||
|
||||
public static function getTimeZoneFromDate($sDate) {
|
||||
$sTimeZone = null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user