2012-08-24 31 views
15

Tôi sẽ cố gắng tất cả mọi thứ nhưng không làm việc này (dd/MM/yyyy) định dạng ngày, điều này luôn cổng mm/dd/yyyyKhông thể đặt định dạng datetime trong MVC 4 sử dụng chú thích dữ liệu

[Display(Name = "Release Date")] 
[DataType(DataType.DateTime)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] 
public Nullable<DateTime> release_date { get; set; } 

Chế độ xem dao cạo

@Html.EditorFor(model => model.release_date) 

Sử dụng mẫu ngày giờ.

@model Nullable<System.DateTime> 
@if (Model.HasValue) 
{ 
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", Model.Value)) 
} 
else 
{ 
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", DateTime.Now)) 
} 
@{ 
    string name = ViewData.TemplateInfo.HtmlFieldPrefix; 
    string id = name.Replace(".", "_"); 
} 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#@id").datepicker({ 
       dateFormat: "dd/mm/yy", 
       showStatus: true, 
       showWeeks: true, 
       highlightWeek: true, 
       numberOfMonths: 1, 
       showAnim: "scale", 
       showOptions: { 
        origin: ["top", "left"] 
       } 
      }); 
    }); 
</script> 
+2

Từ hình ảnh có vẻ như date là 'dd/mm/yyyy' – Habib

+3

Lưu ý rằng "mm" là phút, ngoài bất kỳ thứ gì khác - vì vậy bạn có thể có nghĩa là "dd/MM/yyyy". –

+0

có đây là (24/08/2012) dd/MM/yyyy – Sender

Trả lời

22

Bạn bỏ lỡ 2 điều ở đây:

DataFormatString="{0:dd/MM/yyyy}"; //It is dd/MM/yyyy instead of dd/mm/yyyy 

và bạn cũng cần:

ApplyFormatInEditMode=true 

Hãy thử sử dụng điều này:

[Display(Name = "Release Date")] 
[DataType(DataType.Date), DisplayFormat(DataFormatString="{0:dd/MM/yyyy}", ApplyFormatInEditMode=true)] 
public Nullable<DateTime> release_date { get; set; } 
+1

DataType (DataType.Date) đang hoạt động – Sender

+0

Ý bạn là gì DataType (DataType.Date) đang hoạt động? Khi tôi thử điều này, tôi nhận được một lịch để chọn một ngày, nhưng khi tôi chuyển sang trường tiếp theo trên biểu mẫu, ngày vẫn được hiển thị dưới dạng dd/mm/yyyy. – comecme

+0

Tôi cần sử dụng dấu chấm "." như seperator. [DataType (DataType.Date), DisplayFormat (DataFormatString = "{0: dd.MM.yyyy}", ApplyFormatInEditMode = true)] Không hoạt động? Tôi có thể làm gì? –

5

{0:dd/mm/yyyy} nên {0:dd/MM/yyyy}mm nghĩa phút, không tháng:

[Display(Name = "Release Date")] 
[DataType(DataType.DateTime)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] 
public Nullable<DateTime> release_date { get; set; } 
0

Nếu bạn sử dụng chú thích dữ liệu. khi hiển thị nó tốt. nhưng khi chỉnh sửa chế độ. nó vẫn sử dụng định dạng máy chủ (thiết lập văn hóa) DisplayFormat: giống như tên, chỉ để hiển thị

Có một số tùy chọn để giải quyết. - dán vào máy chủ như chuỗi với định dạng ưa thích của bạn - viết khách hàng bindding - Thiết toàn cầu hóa trong web.config cho Format: dd/MM/yyy i sử dụng cài đặt dưới

<system.web> 
    <globalization culture="en-GB"/> 
.... 
Các vấn đề liên quan