Как изменить дату mysql на «Аго» в php

Итак, для моей базы данных mysql у меня следующий формат даты: 2016-01-21 23:15:00 .

Для своего вывода (php) я пытаюсь изменить его формат на «назад».

Я попытался реализовать этот метод .

Вот как я получаю значение даты:

 $d .= $row->date. ','; 

Я немного потерял, как преобразовать это в формат «назад».

Какие-либо предложения?

Благодаря!

Solutions Collecting From Web of "Как изменить дату mysql на «Аго» в php"

 function ago( $time ){ /* as found on css-tricks */ } $date='2016-01-21 23:15:00'; $timestamp=strtotime($date); echo ago( $timestamp ); 

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

 $d .= ago($row->date). ','; 

Таким образом, вы должны получить то, что вы делаете.

В любом случае для таких реализаций я всегда предпочитаю такие вещи, как Carbon, у которого есть метод, называемый diffForHumans() который делает именно то, что вы ищете.

Для вычисления времени, прошедшего от времени, вы должны преобразовать их в метку времени. Затем, когда вы вычитаете более старое время с более нового, вы получите время, прошедшее через несколько секунд. Вы можете увидеть пример ниже;

 <?PHP header("Content-type: text/plain; charset=utf-8"); $oldTimeStamp = strtotime("2016-01-21 23:15:00"); $nowTimeStamp = time(); echo $oldTimeStamp ."\n"; echo $nowTimeStamp ."\n"; echo ($nowTimeStamp - $oldTimeStamp)." seconds passed"; ?> 

Если вы попытаетесь сделать пример своей ситуации;

 <?PHP $mysqlTime = strtotime($row->date); $nowTimeStamp = time(); //We use abs because we do not know the $row->date is in future or not ? echo abs($nowTimeStamp - $mysqlTime)." seconds ".($nowTimeStamp < $mysqlTime ? " to time of record" : " passed")."..."; ?> 

Вы вычисляете результат в соответствии с вашим форматом, я имею в виду минуту, секунду, день и т. Д. Надеюсь, это поможет.