Làm cách nào để hiển thị năm hiện tại trong mẫu Django?


163

Thẻ mẫu sẵn có để hiển thị năm nay một cách linh hoạt. Giống như "2011", thẻ mẫu sẽ hiển thị cái gì?

Câu trả lời:


324

Thẻ đầy đủ để in chỉ năm hiện tại là {% now "Y" %}. Lưu ý rằng chữ Y phải nằm trong dấu ngoặc kép.


4
Đối với bản ghi, {% now%} sẽ không cung cấp kết quả phù hợp cho người dùng trong múi giờ khác với máy chủ.
Tomasz Zieliński

27
@Thomas Đúng đối với một số trường hợp, tuy nhiên, trường hợp sử dụng phổ biến nhất tôi từng thấy vì muốn có năm hiện tại là một thông báo bản quyền và thực sự không quan trọng lắm vì nó hoàn hảo trong 24 giờ trong khi ngày 1 tháng 1 diễn ra thế giới.
Endophage

2
tình cờ, mã đó là sai, Yphải được trích dẫn như trong câu trả lời của Cabishek.
Endophage

Nếu tôi nhận được tháng, tức là "M", làm thế nào tôi có được "tháng 11" đến "tháng 11"
Josh

1
@Josh các tài liệu đầy đủ là docs.djangoproject.com/en/dev/ref/temsheet/builtins/ , nhưng bạn đang tìm kiếm Fthay vìM
Haldean Brown



2

Tôi đã sử dụng thông tin sau trong trang web dựa trên Django của mình http://pmtboyshostelraipur.pythonanywhere.com/ hoạt động tốt như mong đợi (Có thể, khi bạn đọc bài đăng này, nó sẽ ngừng hoạt động vì đó là một dịch vụ lưu trữ miễn phí nên chỉ cần lưu trữ miễn phí thử mã và xem).

{% now 'Y' %}

Bạn có thể truy cập và xem nó trong phần chân trang nơi tôi đã hiển thị năm hiện tại bằng cách sử dụng mã dưới đây (phần CSS bị bỏ qua vì vậy hãy sử dụng phần của riêng bạn).

<footer class="container-fluid" id="footer">
    <center>
        <p>
           &copy;
           {% now 'Y' %}, 
           PMT Boys hostel <br> 
           All rights reserved
        </p>
    </center>
</footer>

Và nó đang hiển thị văn bản trung tâm sau trong phần chân trang web của tôi.

©2018, PMT Boys hostel 
All rights reserved

-2

Trong mẫu của tôi, ngoài năm hiện tại, tôi cần thả xuống năm hết hạn thẻ tín dụng với 20 giá trị (bắt đầu từ năm hiện tại). Các selectgiá trị cần có là 2 chữ số và chuỗi hiển thị 4 chữ số. Để tránh mã mẫu phức tạp, tôi đã viết thẻ mẫu đơn giản này:

@register.filter
def add_current_year(int_value, digits=4):
    if digits == 2:
        return '%02d' % (int_value + datetime.datetime.now().year - 2000)
    return '%d' % (int_value + datetime.datetime.now().year)

Và sử dụng nó theo cách sau:

<select name="card_exp_year">
    {% for i in 'iiiiiiiiiiiiiiiiiiii' %}
    <option value="{{ forloop.counter0|add_current_year:2 }}">{{ forloop.counter0|add_current_year:4 }}</option>
    {% endfor %}
</select>

câu trả lời quá dài!
mohammedgqudah

@mohammedqudah, tùy thuộc vào nhu cầu của bạn!
Nghệ nhân đám mây
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.