CMS - Blog - shwitch show only date and time

04.12.2015 337
Assigned to: CMS Option: Feedback Status: Closed Solution: Yes From: bluesatkv

Hi Jerome,

I need help from you. I don't know where I'm wrong wink

I prepared switch in Blog settings for displaying time in format ' 2 days ago' or ' date - time'.

But now I have problem. In 'class.jakbase.php' is this code:

public static function jakTimesince($mysqlstamp, $date, $time, $lang)
    {
    
        $today = time(); /* Current unix time  */
        $unixtime = strtotime($mysqlstamp);
        $since = $today - $unixtime;
    
        if ($since < 900000) {
        
            $lang = explode(",", $lang);
            // Parse custom date format similar to original question
            $replydate = new DateTime($mysqlstamp);
            
            // Calculate DateInterval (www.php.net/manual/en/class.dateinterval.php)
            $diff = $replydate->diff(new DateTime());
            
            if ($diff->m >= 1) {
                return date($date.$time, $mysqlstamp);
            }
            
                if ($v = $diff->d >= 1) {
                    $timeago = JAK_base::pluralize($diff->d, $lang[0], $lang[4]);
                } elseif ($v = $diff->h >= 1) {
                    $timeago = JAK_base::pluralize($diff->h, $lang[1], $lang[5]);
                } elseif ($v = $diff->i >= 1) {
                       $timeago = JAK_base::pluralize($diff->i, $lang[2], $lang[6]);
                   } else {
                    $timeago = JAK_base::pluralize($diff->s, $lang[3], $lang[7]);
                }
                
            return sprintf($lang[8],$timeago);
        
        } else {
        
            return date($date.$time, $unixtime);
        }
    
    }

In databases I have in cms_settings table varname 'blogdate' for switching value 'YES/NO'

I have problem select value from varname 'blogdate'. I edited the code as follows:

public static function jakTimesince($mysqlstamp, $date, $time, $lang)
    {
    
        $today = time(); /* Current unix time  */
        $unixtime = strtotime($mysqlstamp);
        $since = $today - $unixtime;

        global $jakdb;

        $sql = 'SELECT value FROM '.DB_PREFIX.'setting WHERE varname = "blogdate"';
        $result = $jakdb->query($sql);

        while ($row = $result->fetch_assoc()) {

            if ($row == 0) {

                if ($since < 900000) {
            
                    $lang = explode(",", $lang);
                    // Parse custom date format similar to original question
                    $replydate = new DateTime($mysqlstamp);
                    
                    // Calculate DateInterval (www.php.net/manual/en/class.dateinterval.php)
                    $diff = $replydate->diff(new DateTime());
                    
                    if ($diff->m >= 1) {
                        return date($date.$time, $mysqlstamp);
                    }
                    
                        if ($v = $diff->d >= 1) {
                            $timeago = JAK_base::pluralize($diff->d, $lang[0], $lang[4]);
                        } elseif ($v = $diff->h >= 1) {
                            $timeago = JAK_base::pluralize($diff->h, $lang[1], $lang[5]);
                        } elseif ($v = $diff->i >= 1) {
                               $timeago = JAK_base::pluralize($diff->i, $lang[2], $lang[6]);
                           } else {
                            $timeago = JAK_base::pluralize($diff->s, $lang[3], $lang[7]);
                        }
                        
                    return sprintf($lang[8],$timeago);
                
                } else {
                
                    return date($date.$time, $unixtime);
                }

            } else {
            
                return date($date.$time, $unixtime);
            }
        }

    }

My logic is as follows - If the value 'blogdate' is 0 than date format is e.g '2 days ago', If the value 'blogdate' is 1 than date format is e.g. '21.11.2015 - 20:54'

But my code stil not work cry  Can you please help me?

Sign in to see the solution.