Я предполагаю, что вы говорите о MySQL TIMESTAMP
тип данных , поскольку Я не думаю, что MySQL на самом деле имеет тип данных, такой как метка времени Unix (т.е. секунды с начала эпохи) поэтому вам нужно сначала преобразовать полученную дату, используя функцию strtotime
:
$timestamp = strtotime($dbTimestamp);
Это вернет метку времени Unix , с которой вы можете играть.
Далее мы определим еще пару временных отметок, чтобы сравнить это значение с:
Во-первых, мы хотим знать отметку времени для полуночи сегодня утром. Для этого вы передадите строку "сегодня" в strtotime
:
$today = strtotime("today");
Далее нам нужно знать метку времени на семь дней назад. Вам придется выбирать между "1 week ago"
и "1 week ago midnight"
. Разница между этими двумя заключается в том, что midnight
вернет отметку времени для 12:00 в тот день, в то время как версия без нее вернет текущее время , семь дней назад (например, сегодня разница будет в том, что midnight
вернется в 12:00 7 апреля, а версия, не относящаяся к полуночи, прямо сейчас вернется в 15:45 7 апреля):
$weekAgo = strtotime("1 week ago midnight");
(Обратите внимание: существует много форматов , которые strtotime
понимает, включая множество относительных форматов , таких как примеры "сегодня" и "1 неделя назад", использованные выше.)
Далее нам нужно определить форматы даты для использования в каждом случае:
$timeOnly = "g:i A"; // This gives an "hour:minute AM/PM" format, e.g. "6:42 PM"
$dayOfWeek = "l" // Gives a full-word day of the week, e.g. "Sunday"
$mdy = "m/d/Y" // gives two-digit month and day, and 4-digit year,
// separated by slashes, e.g. "04/14/2011"
Наконец, мы просто проводим сравнение и форматируем нашу метку времени, используя date
функцию :
if ($timestamp >= $today) {
$date = date($timeOnly, $timestamp);
} elseif ($timestamp >= $weekAgo) {
$date = date($dayOfWeek, $timestamp);
} else {
$date = date($mdy, $timestamp);
}
В результате вы получите строковую переменную с именем $date
, которая содержит предоставленную вашей базой метку времени в соответствующем формате, который вы можете отображать на своей странице по мере необходимости.