]> git.mxchange.org Git - friendica.git/blobdiff - include/datetime.php
Merge branch 'master', remote-tracking branch 'remotes/upstream/master'
[friendica.git] / include / datetime.php
index d44e995cfaf5e7996ef532276dac15f5cfc43034..3b1491e4d839429d5fb95390df171be39bc5ad54 100644 (file)
@@ -80,6 +80,16 @@ function field_timezone($name='timezone', $label='', $current = 'America/Los_Ang
 if(! function_exists('datetime_convert')) {
 function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") {
 
+       // Defaults to UTC if nothing is set, but throws an exception if set to empty string.
+       // Provide some sane defaults regardless.
+
+       if($from === '')
+               $from = 'UTC';
+       if($to === '')
+               $to = 'UTC';
+       if($s === '')
+               $s = 'now';
+
        // Slight hackish adjustment so that 'zero' datetime actually returns what is intended
        // 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 
@@ -234,7 +244,7 @@ function timesel($pre,$h,$m) {
 // Limited to range of timestamps
 
 if(! function_exists('relative_date')) {
-function relative_date($posted_date) {
+function relative_date($posted_date,$format = null) {
 
        $localtime = datetime_convert('UTC',date_default_timezone_get(),$posted_date); 
 
@@ -260,10 +270,13 @@ function relative_date($posted_date) {
        );
     
        foreach ($a as $secs => $str) {
-       $d = $etime / $secs;
-       if ($d >= 1) {
-               $r = round($d);
-               return $r . ' ' . (($r == 1) ? $str[0] : $str[1]) . t(' ago');
+               $d = $etime / $secs;
+               if ($d >= 1) {
+                       $r = round($d);
+                       // translators - e.g. 22 hours ago, 1 minute ago
+                       if(! $format)
+                               $format = t('%1$d %2$s ago');
+                       return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1]));
         }
     }
 }}