首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将elgg php函数更改为javascript函数

将elgg php函数更改为javascript函数
EN

Stack Overflow用户
提问于 2014-07-29 21:09:22
回答 1查看 43关注 0票数 0

将elgg_get_friendly_time更改为javascript

我输入了这个$params = array('time' => $time);return elgg_echo("friendlytime:justnow");

代码语言:javascript
复制
<?php

function elgg_get_friendly_time($time) {

// return a time string to short circuit normal time formatting
$params = array('time' => $time);
$result = elgg_trigger_plugin_hook('format', 'friendly:time', $params, NULL);
if ($result) {
return $result;
}

$diff = time() - (int)$time;

$minute = 60;
$hour = $minute * 60;
$day = $hour * 24;

if ($diff < $minute) {
return elgg_echo("friendlytime:justnow");
} else if ($diff < $hour) {
$diff = round($diff / $minute);
if ($diff == 0) {
$diff = 1;
}

if ($diff > 1) {
return elgg_echo("friendlytime:minutes", array($diff));
} else {
return elgg_echo("friendlytime:minutes:singular", array($diff));
}
} else if ($diff < $day) {
$diff = round($diff / $hour);
if ($diff == 0) {
$diff = 1;
}

if ($diff > 1) {
return elgg_echo("friendlytime:hours", array($diff));
} else {
return elgg_echo("friendlytime:hours:singular", array($diff));
}
} else {
$diff = round($diff / $day);
if ($diff == 0) {
$diff = 1;
}

if ($diff > 1) {
return elgg_echo("friendlytime:days", array(diff));
} else {
return elgg_echo("friendlytime:days:singular", array($diff));
}
}
}

?>
EN

回答 1

Stack Overflow用户

发布于 2014-07-29 21:32:16

我在文档中查找了该函数:

http://reference.elgg.org/engine_2lib_2output_8php.html#aa008ab7b454c680f83ca7a62409c6ab5

它提醒了我,我有一些JS代码可以做类似的事情,这可能会对你有所帮助:

代码语言:javascript
复制
function get_friendly_date(date) {
    var now = new Date();
    var diff = Math.floor((now - date) / 1000); // seconds
    var min = 60;           // seconds
    var hour = 3600;        // seconds
    var day = 86400;        // seconds
    var month = 30.5 * day; // seconds
    months = Math.floor(diff / month);
    if (months >= 1) return months + " months ago";
    else {
        days = Math.floor(diff / day);
        if (days == 1) return days + " day ago";
        else if (days > 1) return days + " days ago";
        else {
            hours = Math.floor(diff / hour);
            if (hours == 1) return hours + " hour ago"
            else if (hours > 1) return hours + " hours ago";
            else {
                mins = Math.floor(diff / min);
                if (mins == 1) return mins + " min ago";
                else if (mins > 1) return mins + " mins ago";
                else {
                    return diff + " seconds ago";
                }
            }
        }
    }
}

我把它放在一把小提琴里,你可以在这里摆弄:

http://jsfiddle.net/hM2LU/

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25016118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档