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:
TWIG
timestamp|date(format, time_zone)
Trong đó:
- timestamp: một số nguyên UnixTime.
- format: định dạng thờ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ụ:
TWIG
{{'now'|date('U')}}
Áp dụng:
TWIG
{% 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 %}
Chia sẻ
|
|