Небольшая помощь с этой функцией "дата" - PullRequest
0 голосов
/ 13 февраля 2010

У меня есть это, чтобы выбрать дату из базы данных mysql и сравнить ее с массивом названий месяцев на шведском языке.

$monthnames = array("","Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December");

$postdate = $monthnames[date("n", strtotime( $row['modify_date'] ))];
//Outputs something like '12 Februari'

Вот проблема, я хочу проверить переменную $ postdate и изменить ее на «Сегодня», «Вчера» и «Позавчера» в зависимости от даты, как я могу это сделать?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 февраля 2010

В PHP нет такой встроенной функции. Вы должны делать вычисления, функция mktime может быть вашим другом в этом случае.

if (date of $timenow == date of $timepost) { today; }
else if (date of $timenow - 24h == date of $timepost) { yesterday; }
etc.

Помните об изменении летнего / зимнего времени, часовых поясов и т. Д., Поэтому попробуйте использовать mktime()

http://php.net/date

0 голосов
/ 13 февраля 2010

Если вы используете временные метки для хранения дат в базе данных:

Вы можете иметь заданные интервалы, такие как:

$day = mktime(0,0,0,2,1,2001)-mktime(0,0,0,1,1,2001);

И вы можете сравнить время сейчас - отметки времени / даты, которые у вас есть в базе данных с этими интервалами.

Например, допустим, $ dbTime содержит метку времени, извлеченную с помощью mysql:

$time = time() - $dbTime;
if($time<$day)
   echo 'posted today';
elseif($time<($day*2))
   echo 'posted yesterday';

и т. Д. И т. Д.

Затем вы можете использовать PHP-функцию Date для отображения часов, минут, секунд или дат, если они превышают заданные вами интервалы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...