Как я могу вывести возврат из функции

У меня есть функция Timeago, но я не знаю, как вернуть Timeago в переменную, которую я могу отобразить на моей веб-странице. Я очень новичок в PHP, и я взял функцию Timeago из сети, но я не знаю, как передать результат в переменную, которую я могу вывести на мою веб-страницу.

Код ниже …

<?php

$dateadded = $row['dateadded'];

$timeadded=$row['timeadded'];

Я хотел бы передать в функцию переменные выше из date('y-m-d'); а также time('h-i-s');, но я не уверен, как это сделать, и, что более важно, как я могу отобразить это на моей странице в качестве переменной?

return "$difference $periods[$j] 'ago' ";

Спасибо за любую помощь …

function ago($time)
{
$periods = array("second", "minute", "hour", "day", "week", "month",
"year", "decade");
$lengths = array("60","60","24","7","4.35","12","10");

$now = time();

$difference     = $now - $time;
$tense         = "ago";

for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}

$difference = round($difference);

if($difference != 1) {
$periods[$j].= "s";
}

return "$difference $periods[$j] 'ago' ";
}
?>

Мне удалось заставить «дни назад» работать с небольшим количеством кода, но я также хотел бы показать часы, если дни меньше 1 дня. Любая идея, как я могу адаптировать приведенный ниже код, чтобы показать в часах, если daysago это 0?

$start = strtotime($dateadded);

$end = strtotime(date('y-m-d'));

$daysago = ceil(abs($end - $start) / 86400);

Я попробовал это, но это не сработало:

$hours = $daysago / ( 60 * 60 );

$mins = $hours /(60*60);

//if ($hours < 1) {$hours=$mins;}
//if ($daysago < 1) {$daysago = $hours; }

и я отображал результат в тег заголовка, как показано ниже:

<div id='contentimagegallery' class='contentimagegallery' style='z-index:1000;' title='{$daysago}'>

но я хотел бы показать результат и в часах.

0

Решение

Особенность PHP в том, что вы можете использовать данные, собранные на стороне сервера, для построения ваших представлений, которые будут отображаться на стороне клиента. Итак, из того, что я вижу в вашем коде, вы собираете данные, которые пользователь записывает во вход на вашей веб-странице, верно? Сбор данных и функция для вычисления «timeago», как вы его называете, — это половина работы! Давайте перейдем к просмотру крафта. Есть два способа сделать это:

  • Сделайте взгляды как классы.
  • Делайте представления как скрипты.

Виды как классы:

Представьте, что в вашем PHP-скрипте есть алгоритм timeago, а также HTML-представление, возможно, с расширением .html. Давайте создадим представление, которое создается с параметром, который будет результатом вашей операции timeago:

<?php

class My_View{

var $timeago;

function __construct($timeago){
$this->timeago = $timeago;
$this->render();
}

function render(){
?>

<html>
<head>
<title>Timeago Example</title>
</head>
<body>
<h1>Your timeago is: <?php echo $this->timeago; ?></h1>
</body>
</html>

<?php
}

}

Просто довольно простой HTML, который создается с параметром (как говорит функция __constructor ()). Посмотри, как я открываю <?php теги, когда это код PHP, и писать чистый HTML вне этого тега, после закрывающего тега PHP ?>, Этот класс будет выводить <h1> со значением атрибута класса $ timeago, и поскольку это атрибут класса, вы должны ссылаться на него с помощью $this->timeago, Ваш код в конечном итоге будет выглядеть примерно так:

<?php

//Include your view
//Notice the .php extension!!
include __DIR__.'/../Views/My_View.php';

// Your stuff here

$timeago = ago($time); //this is your function
new My_View($timeago);
exit();

И это все! Давайте теперь посмотрим, как это сделать без занятий.

Представления как скрипты

Теперь, вместо создания класса, просто создайте простой скрипт, который будет использовать переменную $ timeago. Мы назовем это my_view.php:

<html>
<head>
<title>Timeago Example</title>
</head>
<body>
<h1>Your timeago is: <?php echo $timeago; ?></h1>
</body>
</html>

Посмотрите, как у нас есть только тег PHP с эхом $ timeago? Давайте посмотрим, как мы могли бы использовать ваш код для печати этого представления, а затем я объясню вам, почему он работает:

// Do not include your View here

// Your stuff here

$timeago = ago($time); //this is your function

include __DIR__.'/../Views/my_view.php';
exit();

Итак, вопрос здесь … Если я создал скрипт с именем my_view.php, который печатает переменную $ timeago, почему он ее печатает? Этот скрипт не знает о существовании этой переменной. Это из-за include ключевое слово. Каждый раз, когда вы include или же include_once файл, это как если бы вы копировали и вставляли содержимое файла прямо в середину вашего скрипта, и догадались, что … Этот файл будет знать обо всех переменных, созданных ранее в этом же скрипте.

В настоящее время люди используют шаблоны для создания динамических HTML-представлений, но если вы собираетесь продолжить работу с чистым PHP, я настоятельно рекомендую использовать классы, поскольку их проще поддерживать, и просто взглянув на метод __construct (), вы знать все переменные, используемые этим конкретным представлением.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]