Quên mật khẩu
 Đăng ký
Xem: 85|Trả lời: 0

Custom - Hàm: ago

[Lấy địa chỉ]

36

Chủ đề

7

Bài viết

172

Điểm

Administrator

Điểm
172
Đăng lúc 2024-9-6 19:18:04 | Xem tất |Chế độ đọc
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:
  1. timestamp|date(format, time_zone)
Sao chép mã


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ụ:
  1. {{'now'|date('U')}}
Sao chép mã


Áp dụng:
  1. {% macro ago(time_ago) %}
  2. {% spaceless %}
  3. {% set now = 'now'|date('U')-1160 %}
  4. {% set time_ago = time_ago|date('U')-1160 %}
  5. {% set timeht=now|date('U', 'Asia/Ho_Chi_Minh') %}
  6. {% set time = time_ago|date('U', 'Asia/Ho_Chi_Minh') %}
  7. {% set time_giay = timeht - time %}
  8. {% set time_phut = (time_giay / 60 )|round(0,'floor') %}
  9. {% set time_day = timeht|date('z', 'Asia/Ho_Chi_Minh')-time|date('z', 'Asia/Ho_Chi_Minh') %}
  10. {% set fulltime = time_ago|date('d.m.Y - H:i', 'Asia/Ho_Chi_Minh') %}
  11. {% set minitime = time_ago|date('H:i', 'Asia/Ho_Chi_Minh') %}
  12. {% if time_day == 0 %}
  13. {% if time_giay <= 60 %}
  14. {{' '~time_giay~' giây trước'}}
  15. {% elseif time_phut <= 60 %}
  16. {{' '~time_phut~' phút trước'}}
  17. {% else %}
  18. {{' Hôm nay, '~minitime}}
  19. {% endif %}
  20. {% elseif time_day == 1 %}
  21. {{' Hôm qua, '~minitime}}
  22. {% else %}
  23. {{' '~fulltime}}
  24. {% endif %}
  25. {% endspaceless %}
  26. {% endmacro %}
Sao chép mã
Bạn phải đăng nhập mới được đăng bài Đăng nhập | Đăng ký

Quy tắc điểm

Lưu trữ|Danh sách ban|Diễn đàn Sắc màu

GMT+7, 2024-11-21 16:27 , Processed in 0.046466 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

Trả lời nhanh Lên trên Trở lại danh sách