diff --git a/files/ajax/timezone.php b/files/ajax/timezone.php new file mode 100644 index 0000000000..93d06611a0 --- /dev/null +++ b/files/ajax/timezone.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/files/index.php b/files/index.php index d796583a4a..a163895131 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 0000000000..d569683f21 --- /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 c18ecd570d..a3ffb6b1a6 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); } /**