Browse Source

very minor nit - if $abs is false, return before trying to use false in a numeric calculation

also return 'never' if we have an uninitialised date
tags/2.3beta1
Friendika 9 years ago
parent
commit
baead9f4c8
1 changed files with 11 additions and 10 deletions
  1. +11
    -10
      include/datetime.php

+ 11
- 10
include/datetime.php View File

@@ -65,9 +65,9 @@ if(! function_exists('datetime_convert')) {
function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") {

// Slight hackish adjustment so that 'zero' datetime actually returns what is intended
// otherwise we end up with -0001-11-30 ...
// otherwise we end up with -0001-11-30 ...
// add 32 days so that we at least get year 00, and then hack around the fact that
// months and days always start with 1.
// months and days always start with 1.

if(substr($s,0,10) == '0000-00-00') {
$d = new DateTime($s . ' + 32 days', new DateTimeZone('UTC'));
@@ -176,23 +176,24 @@ function relative_date($posted_date) {
$localtime = datetime_convert('UTC',date_default_timezone_get(),$posted_date);

$abs = strtotime($localtime);
$etime = time() - $abs;
if ($abs==False) {
if ($posted_date === '0000-00-00 00:00:00' || $abs === False) {
return t('never');
}

$etime = time() - $abs;
if ($etime < 1) {
return t('less than a second ago');
}
$a = array( 12 * 30 * 24 * 60 * 60 => array( t('year'), t('years')),
30 * 24 * 60 * 60 => array( t('month'), t('months')),
7 * 24 * 60 * 60 => array( t('week'), t('weeks')),
24 * 60 * 60 => array( t('day'), t('days')),
60 * 60 => array( t('hour'), t('hours')),
60 => array( t('minute'), t('minutes')),
1 => array( t('second'), t('seconds'))
30 * 24 * 60 * 60 => array( t('month'), t('months')),
7 * 24 * 60 * 60 => array( t('week'), t('weeks')),
24 * 60 * 60 => array( t('day'), t('days')),
60 * 60 => array( t('hour'), t('hours')),
60 => array( t('minute'), t('minutes')),
1 => array( t('second'), t('seconds'))
);
foreach ($a as $secs => $str) {


Loading…
Cancel
Save