มีอะไรผิดปกติต่อไปนี้?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date กำลังแสดง 20/11/2005 00:00 น. อยากให้แสดง 20 พ.ย. 2554
มีอะไรผิดปกติต่อไปนี้?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date กำลังแสดง 20/11/2005 00:00 น. อยากให้แสดง 20 พ.ย. 2554
คำตอบ:
ลอง:
@item.Date.ToString("dd MMM yyyy")
หรือคุณสามารถใช้[DisplayFormat]
แอตทริบิวต์ในโมเดลมุมมองของคุณ:
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime Date { get; set }
และในมุมมองของคุณ:
@Html.DisplayFor(x => x.Date)
นี่คือวิธีแก้ปัญหา:
@item.Published.Value.ToString("dd. MM. yyyy")
ก่อนToString ()ใช้ราคา
@(item.DOB?.ToString("dd-MMM-yyyy"))
- หรือโดยใช้ทรัพย์สิน HasValue @(item.DataDate.HasValue ? item.DataDate.Value.Date.ToString("dd MMM yyyy") : null)
- ในทั้งสองกรณีคุณสมบัติต้องเป็นวันที่และเวลาที่เป็นโมฆะ
ลองใช้ใน MVC 4.0
@Html.TextBoxFor(m => m.YourDate, "{0:dd/MM/yyyy}", new { @class = "datefield form-control", @placeholder = "Enter start date..." })
แอตทริบิวต์ [DisplayFormat] ถูกใช้ใน EditorFor / DisplayFor เท่านั้นไม่ใช่โดย HTML APIs ดิบเช่น TextBoxFor ฉันทำให้มันใช้งานได้โดยทำสิ่งต่อไปนี้
รุ่น:
[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }
ดู:
<div id="IsLiquorLicenceDocumentOnPremisesYes" class="groupLongLabel">
@Html.LabelFor(m => m.LiquorLicenceDocumentIssueDate)
<span class="indicator"></span>
@Html.EditorFor(m => m.LiquorLicenceDocumentIssueDate)
<span id="validEmail"></span>
<br />
@Html.ValidationMessageFor(m => m.LiquorLicenceDocumentIssueDate)
</div>
เอาท์พุท: 30/12/2554
ลิงค์ที่เกี่ยวข้อง:
โค้ดด้านล่างนี้จะช่วยคุณได้
@Html.Label(@item.Date.Value.ToString("dd - M - yy"))
สำหรับ Razor ให้ใส่ไฟล์ DateTime.cshtml ในโฟลเดอร์ Views / Shared / EditorTemplates DateTime.cshtml มีสองบรรทัดและสร้างกล่องข้อความที่มีรูปแบบวันที่ 9/11/2001
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
โดยทั่วไปเดือนที่เขียนจะใช้ Escape เป็น MMM ปี 4 หลักเป็นปปปปดังนั้นสตริงรูปแบบของคุณควรมีลักษณะเป็น "dd MMM yyyy"
DateTime.ToString("dd MMM yyyy")
ฉันไม่สามารถทำงานนี้ได้ทั้งหมดตามคำแนะนำข้างต้น การรวม DataTypeAttribute [DataType(DataType.Date)]
ดูเหมือนจะช่วยแก้ปัญหาของฉันได้โปรดดู:
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime RptDate { get; set; }
@Html.EditorFor(m => m.CLPosts.RptDate)
HTH
สำหรับวิธีการแก้ปัญหาทั้งหมดเมื่อคุณลองใช้ในเบราว์เซอร์รุ่นใหม่ (เช่น FF) และคุณได้ตั้งค่ารุ่นที่ถูกต้อง
// Model
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime Start { get; set; }
// View
<div class="form-group">
@Html.LabelFor(model => model.Start, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control"} })
</div>
</div>
mvc (5) จะแสดงผล ( ประเภทของอินพุตถูกตั้งค่าเป็นวันที่ตามการตั้งค่าวันที่ของคุณในรุ่นของคุณ!)
<div class="col-md-10">
<input class="form-control text-box single-line" data-val="true" data-val-date="The field Start must be a date." data-val-required="The Start field is required." id="Start" name="Start" value="01-05-2018" type="date">
<span class="field-validation-valid text-danger" data-valmsg-for="Start" data-valmsg-replace="true"></span>
</div>
และเบราว์เซอร์จะแสดง
ในการแก้ไขปัญหานี้คุณต้องเปลี่ยนประเภทเป็นข้อความแทนวันที่ (เช่นถ้าคุณต้องการใช้ปฏิทินที่กำหนดเอง)
@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control", @type = "text" } })