summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--files/ajax/timezone.php4
-rw-r--r--files/index.php3
-rw-r--r--files/js/timezone.js12
-rw-r--r--lib/base.php11
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);
}
/**