From ba682529a84911e46d779f1d4cd2c86f873d4967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaussoin=20Timoth=C3=A9e?= Date: Sun, 13 Nov 2016 13:14:13 +0100 Subject: [PATCH] Force the core of Movim to work in UTC and apply the TIMEZONE only to the dates Update the dependencies --- app/helpers/DateHelper.php | 53 +++++++++++++++++--------------------- composer.lock | 10 +++---- src/Movim/Bootstrap.php | 2 +- 3 files changed, 29 insertions(+), 36 deletions(-) diff --git a/app/helpers/DateHelper.php b/app/helpers/DateHelper.php index f88c59df4..8c7db12e3 100644 --- a/app/helpers/DateHelper.php +++ b/app/helpers/DateHelper.php @@ -47,45 +47,36 @@ function getTimezoneCorrection() { * @param timestamp $string * @return string */ -function prepareDate($time, $hours = true, $compact = false) { - // If the time is empty, return nothing - if(empty($time)) return ''; - - // We had the server timezone - $time = $time + TIMEZONE_OFFSET; - - $t = $time ? $time : time(); +function prepareDate($time = false, $hours = true, $compact = false) { + $time = $time ? $time : time(); + $t = $time + TIMEZONE_OFFSET; $date = ''; - $reldays = ((time() - $t - TIMEZONE_OFFSET)-(time()%86400))/86400; - // if $time is within a week - if($reldays < 7 && $reldays >= -2){ - //if $time is today or yesterday - if($reldays < -1) { + $reldays = -(time() - $t - (time() % 86400)) / 86400; + + // if $reldays is within a week + if (-7 < $reldays && $reldays <= 2) { + if($reldays > 1) { $date = __('date.tomorrow'); - } else if ($reldays <= 0) { - //$date = __('date.today'); - } else if ($reldays <= 1) { + } else if (-1 < $reldays && $reldays <= 0) { $date = __('date.yesterday'); + } else if (0 < $reldays && $reldays <= 1) { + // Today + } else { + $$date = __('date.ago', ceil(-$reldays)); } - //else print date "ago" - else { - $date = __('date.ago', ceil($reldays)); - } - } - //else print full date - else { - $date = ''; - - if(!$compact) + } else { + if(!$compact) { $date .= __('day.'.strtolower(date('l', $t))) . ', '; + } $date .= date('j', $t).' '.__('month.'.strtolower(date('F', $t))); - //if over 6months print year - if (abs($reldays) > 182) - $date .= date(', Y', $t); + // Over 6 months + if (abs($reldays) > 182) { + $date .= gmdate(', Y', $t); + } if($compact) return $date; } @@ -94,8 +85,10 @@ function prepareDate($time, $hours = true, $compact = false) { if($date != '') { $date .= ' - '; } - $date .= date('H:i', $time); + + $date .= gmdate('H:i', $t); } + return $date; } diff --git a/composer.lock b/composer.lock index b575d47d4..b2c27c3f8 100644 --- a/composer.lock +++ b/composer.lock @@ -998,16 +998,16 @@ }, { "name": "paragonie/random_compat", - "version": "v2.0.3", + "version": "v2.0.4", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "c0125896dbb151380ab47e96c621741e79623beb" + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/c0125896dbb151380ab47e96c621741e79623beb", - "reference": "c0125896dbb151380ab47e96c621741e79623beb", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", "shasum": "" }, "require": { @@ -1042,7 +1042,7 @@ "pseudorandom", "random" ], - "time": "2016-10-17 15:23:22" + "time": "2016-11-07 23:38:38" }, { "name": "pear/net_dns2", diff --git a/src/Movim/Bootstrap.php b/src/Movim/Bootstrap.php index e9538bf19..a55d611b3 100644 --- a/src/Movim/Bootstrap.php +++ b/src/Movim/Bootstrap.php @@ -250,7 +250,7 @@ class Bootstrap // And we set a global offset define('TIMEZONE_OFFSET', getTimezoneOffset($config->timezone)); - date_default_timezone_set($config->timezone); + date_default_timezone_set("UTC"); } private function setLogLevel()