admin Đăng lúc 2024-9-6 19:18:04

Custom - Hàm: ago

Hàm này được viết bởi macro, trả về khoảng thời gian trước đó hoặc mốc thời gian cụ thể. Đây là một ứng dụng của hàm date().

Cú pháp hàm date:
timestamp|date(format, time_zone)

Trong đó:
- timestamp: một số nguyên UnixTime.
- format: định dạngthời gian mà hàm sẽ trả về
- time_zone: múi giờ

Để lấy UnixTime ở hiện tại, ta lấy timestamp chính bằng 'now', ví dụ:
{{'now'|date('U')}}

Áp dụng:
{% macro ago(time_ago) %}
{% spaceless %}
{% set now = 'now'|date('U')-1160 %}
{% set time_ago = time_ago|date('U')-1160 %}
{% set timeht=now|date('U', 'Asia/Ho_Chi_Minh') %}
{% set time = time_ago|date('U', 'Asia/Ho_Chi_Minh') %}
{% set time_giay = timeht - time %}
{% set time_phut = (time_giay / 60 )|round(0,'floor') %}
{% set time_day = timeht|date('z', 'Asia/Ho_Chi_Minh')-time|date('z', 'Asia/Ho_Chi_Minh') %}
{% set fulltime = time_ago|date('d.m.Y - H:i', 'Asia/Ho_Chi_Minh') %}
{% set minitime = time_ago|date('H:i', 'Asia/Ho_Chi_Minh') %}
{% if time_day == 0 %}
{% if time_giay <= 60 %}
{{' '~time_giay~' giây trước'}}
{% elseif time_phut <= 60 %}
{{' '~time_phut~' phút trước'}}
{% else %}
{{' Hôm nay, '~minitime}}
{% endif %}
{% elseif time_day == 1 %}
{{' Hôm qua, '~minitime}}
{% else %}
{{' '~fulltime}}
{% endif %}
{% endspaceless %}
{% endmacro %}
Trang: [1]
Phiên bản đầy đủ: Custom - Hàm: ago