add automatic timezone (based on client tz offset)

This commit is contained in:
Andrew Dolgov 2013-04-26 10:31:57 +04:00
parent 5ddef5ba23
commit 6bfc97da86
5 changed files with 19 additions and 7 deletions

View file

@ -334,6 +334,7 @@ class RPC extends Handler_Protected {
$_SESSION["hasAudio"] = $_REQUEST["hasAudio"] === "true";
$_SESSION["hasSandbox"] = $_REQUEST["hasSandbox"] === "true";
$_SESSION["hasMp3"] = $_REQUEST["hasMp3"] === "true";
$_SESSION["clientTzOffset"] = $_REQUEST["clientTzOffset"];
$reply = array();

View file

@ -862,6 +862,8 @@
$user_tz_string = get_pref('USER_TIMEZONE', $owner_uid);
if ($user_tz_string != 'Automatic') {
try {
if (!$user_tz) $user_tz = new DateTimeZone($user_tz_string);
} catch (Exception $e) {
@ -869,6 +871,9 @@
}
$tz_offset = $user_tz->getOffset($dt);
} else {
$tz_offset = (int) $_SESSION["clientTzOffset"];
}
$user_timestamp = $dt->format('U') + $tz_offset;

View file

@ -962,8 +962,11 @@ function init() {
dojo.addOnLoad(function() {
loading_set_progress(50);
var clientTzOffset = new Date().getTimezoneOffset() * 60;
new Ajax.Request("backend.php", {
parameters: {op: "rpc", method: "sanityCheck"},
parameters: {op: "rpc", method: "sanityCheck",
clientTzOffset: clientTzOffset },
onComplete: function(transport) {
backend_sanity_check_callback(transport);
} });

View file

@ -256,10 +256,12 @@ function init() {
var hasAudio = !!a.canPlayType;
var hasSandbox = "sandbox" in document.createElement("iframe");
var hasMp3 = !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
var clientTzOffset = new Date().getTimezoneOffset() * 60;
new Ajax.Request("backend.php", {
parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio,
hasMp3: hasMp3,
clientTzOffset: clientTzOffset,
hasSandbox: hasSandbox},
onComplete: function(transport) {
backend_sanity_check_callback(transport);

View file

@ -1,3 +1,4 @@
Automatic
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa