diff options
-rw-r--r-- | files/ajax/timezone.php | 4 | ||||
-rw-r--r-- | files/index.php | 3 | ||||
-rw-r--r-- | files/js/timezone.js | 12 | ||||
-rw-r--r-- | lib/base.php | 11 |
4 files changed, 28 insertions, 2 deletions
diff --git a/files/ajax/timezone.php b/files/ajax/timezone.php new file mode 100644 index 00000000000..93d06611a0d --- /dev/null +++ b/files/ajax/timezone.php @@ -0,0 +1,4 @@ +<?php + session_start(); + $_SESSION['timezone'] = $_GET['time']; +?>
\ No newline at end of file diff --git a/files/index.php b/files/index.php index d796583a4ae..a163895131e 100644 --- a/files/index.php +++ b/files/index.php @@ -37,6 +37,9 @@ OC_UTIL::addStyle( "files", "files" ); OC_UTIL::addScript( "files", "files" ); OC_UTIL::addScript( 'files', 'filelist' ); OC_UTIL::addScript( 'files', 'fileactions' ); +if(!isset($_SESSION['timezone'])){ + OC_UTIL::addScript( 'files', 'timezone' ); +} OC_APP::setActiveNavigationEntry( "files_index" ); // Load the files $dir = isset( $_GET['dir'] ) ? $_GET['dir'] : ''; diff --git a/files/js/timezone.js b/files/js/timezone.js new file mode 100644 index 00000000000..d569683f210 --- /dev/null +++ b/files/js/timezone.js @@ -0,0 +1,12 @@ +//send the clients time zone to the server +$(document).ready(function() { + var visitortimezone = (-new Date().getTimezoneOffset()/60); + $.ajax({ + type: "GET", + url: "ajax/timezone.php", + data: 'time='+ visitortimezone, + success: function(){ + location.reload(); + } + }); +});
\ No newline at end of file diff --git a/lib/base.php b/lib/base.php index c18ecd570db..a3ffb6b1a6f 100644 --- a/lib/base.php +++ b/lib/base.php @@ -231,8 +231,15 @@ class OC_UTIL { * @param bool dateOnly option to ommit time from the result */ public static function formatDate( $timestamp,$dateOnly=false){ - $timeformat=$dateOnly?'F j, Y':'F j, Y, H:i'; - return date($timeformat,$timestamp); + if(isset($_SESSION['timezone'])){//adjust to clients timezone if we know it + $systemTimeZone = intval(exec('date +%z')); + $systemTimeZone=(round($systemTimeZone/100,0)*60)+($systemTimeZone%100); + $clientTimeZone=$_SESSION['timezone']*60; + $offset=$clientTimeZone-$systemTimeZone; + $timestamp=$timestamp+$offset*60; + } + $timeformat=$dateOnly?'F j, Y':'F j, Y, H:i'; + return date($timeformat,$timestamp); } /** |