ฉันจะเปลี่ยนรูปแบบเทมเพลตวันที่ Django เริ่มต้นได้อย่างไร


102

ฉันมีวันที่ในรูปแบบ ISO 8601 ในฐานข้อมูล, %Y-%m-%d. Oct. 16, 2011อย่างไรก็ตามเมื่อวันที่จะถูกส่งผ่านไปยังแม่แบบออกมาเป็นสิ่งที่ชอบ

มีวิธีที่ฉันสามารถปรับแต่งรูปแบบให้เป็นอะไรก็ได้ที่ฉันต้องการ?

คำตอบ:


59

ฉันไม่แน่ใจว่าฉันจะเปลี่ยนมันอย่างไรในไฟล์การตั้งค่า
bash-

3
วิธีเดียวกับที่คุณเปลี่ยนการตั้งค่าอื่น ๆ
Ignacio Vazquez-Abrams

22
ลิงก์ไปยังเอกสารไม่ใช่คำตอบจริงๆดังนั้นจึงลดคะแนนและเพิ่มคะแนนให้กับคำตอบของ medmunds
eric

283

ภายในเทมเพลตของคุณคุณสามารถใช้dateตัวกรองของ Django เช่น:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p>

ให้:

วันเกิด: 29 ม.ค. 2526

การจัดรูปแบบอื่น ๆ ตัวอย่างในเอกสารวันที่กรอง


ฉันคิดว่าสิ่งนี้ใช้ได้เฉพาะในกรณีที่ระบุวันที่เป็นวัตถุวันที่และเวลา จะเกิดอะไรขึ้นถ้าเป็นเพียงสตริงที่ส่งผ่านจากมุมมอง?
Mohammed Shareef C

3
สำหรับสตริงที่กำหนดเองที่มีวันที่ / เวลาฉันอาจแยกวิเคราะห์เป็นวันที่และเวลาของ python ในรหัสมุมมอง (หรือก่อนหน้านี้ถ้าเป็นไปได้ - เมื่อใดก็ตามที่สตริงวันที่นั้นมาถึงในรหัสของฉันก่อน) แต่ถ้าคุณต้องการใช้สตริงเพื่อส่งผ่านวันที่ไปยังเทมเพลต Django ของคุณคำตอบนี้จะมีประโยชน์
medmunds

ตัวอย่างด้านบนที่สมบูรณ์แบบเพื่อใช้ในไฟล์เทมเพลต
Vinod Patidar

31

ตั้งค่าทั้งสองDATE_FORMATและUSE_L10N

หากต้องการทำการเปลี่ยนแปลงสำหรับทั้งไซต์ใน Django 1.4.1 ให้เพิ่ม:

DATE_FORMAT = "Y-m-d"

ลงในsettings.pyไฟล์ของคุณและแก้ไข:

USE_L10N = False

ตั้งแต่การแทนที่ l10n DATE_FORMAT

เอกสารนี้มีอยู่ที่: https://docs.djangoproject.com/en/dev/ref/settings/#date-format


22

เพียงใช้สิ่งนี้:

{{you_date_field|date:'Y-m-d'}}

นี้จะแสดงสิ่งที่ชอบ2016/10/16 คุณสามารถใช้รูปแบบตามที่คุณต้องการ


8

เพื่อเปลี่ยนรูปแบบวันที่ใน views.py จากนั้นกำหนดให้กับเทมเพลต

# get the object details 
home = Home.objects.get(home_id=homeid)

# get the start date
_startDate = home.home_startdate.strftime('%m/%d/%Y')

# assign it to template 
return render_to_response('showme.html' 
                                        {'home_startdate':_startDate},   
                                         context_instance=RequestContext(request) )  

8

สิ่งที่คุณต้องเป็นตัวกรองวันแม่แบบ

เช่น:

<td>Joined {{user.date_created|date:"F Y" }}<td>

ผลตอบแทนนี้ Joined December 2018


6

หากคุณต้องการแสดงวันที่และเวลาสั้น ๆ (11/08/2018 03:23 น.) คุณสามารถทำได้ดังนี้:

{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}

รายละเอียดสำหรับแท็กนี้ที่นี่และข้อมูลเพิ่มเติมเกี่ยวกับวันที่ตามรูปแบบที่กำหนดที่นี่

ตัวอย่าง:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.