Как отображать дату в формате "сегодня", "вчера", а затем обычным образом в системе?

Можно ли изменить код таким образом, чтобы он отображал только "сегодня" и "вчера", а для остальных дат использовал стандартный формат, например, "15.11.2023" или "5.2.2020"?
  • 19 ноября 2023 г. 3:10
Ответы на вопрос 2
В языке программирования Python можно использовать модуль `datetime` для работы с датами.

Для отображения дат в формате "сегодня" и "вчера" можно создать функцию, которая будет принимать на вход дату и возвращать соответствующую строку в нужном формате. Если дата равна текущей дате, то функция вернет "сегодня", если дата равна предыдущему дню относительно текущей даты, то функция вернет "вчера", в остальных случаях будет возвращаться стандартный формат даты.

Вот пример кода:

```python
from datetime import datetime, timedelta

def format_date(date):
    today = datetime.now().date()
    yesterday = today - timedelta(days=1)
    
    if date == today:
        return "сегодня"
    elif date == yesterday:
        return "вчера"
    else:
        return date.strftime("%d.%m.%Y")

# Пример использования
date1 = datetime(2023, 11, 15).date()
date2 = datetime(2020, 2, 5).date()
date3 = today # текущая дата

print(format_date(date1))  # "15.11.2023"
print(format_date(date2))  # "5.2.2020"
print(format_date(date3))  # "сегодня"
```

В этом примере функция `format_date` проверяет, равна ли дата из аргумента функции текущей дате или предыдущему дню. Если да, то возвращается соответствующая строка ("сегодня" или "вчера"), в противном случае применяется стандартный формат даты с использованием метода `strftime`, который принимает форматировочную строку "%d.%m.%Y" для вывода даты в формате "день.месяц.год".
1. Если вы не администратор, функция `wph_human_date` возвращает человеко-понятное представление даты.
2. Если дата публикации поста равна текущей дате, возвращается строка "сегодня".
3. Если дата публикации поста равна вчерашней дате, возвращается строка "вчера".
4. Во всех остальных случаях возвращается дата публикации поста в стандартном формате "d.m.Y".
5. Функция `wph_human_date` применяется фильтром `get_the_date`, чтобы заменить стандартное представление даты на человеко-понятное.
Похожие вопросы