ASP.NET MVC displaying date without time

爱⌒轻易说出口 提交于 2019-11-30 18:18:56

Use DisplayFormatAttribute to indicate format when value is displayed. Also, you could create two DisplayTemplates, Date and DateTime, and use UIHintAttribute to specify template

The problem you have here is that you are using a string value rather than a DateTime.

change your model to be:

[DataType(DataType.Date)]
[Display(Name = "Date of birth")]
public DateTime? DateOfBirth { get; set; }

DataType will only work if it's a DateTime type, you also get the added advantage that it will automatically validate it as a valid date when using a DateTime. If you use string, you will have to use a regular expression validator to ensure a proper date has been entered.

This should do it for edit mode and display

 [DisplayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:MM/dd/yyyy}")]

though if it is just display, this might work

[DisplayFormat(DataFormatString = "{0:d}")]

You can use ToShortDateString() or ToLongDateString() to display date only,example:

@Model.EventDate.ToShortDateString()
@Model.EventDate.ToLongDateString()
Yehoshua Levin

If your date is of type DateTime, and ToShortDateString() or ToLongDateString() still doesn't work, check if your DateTime is nullable (DateTime?). Making it not nullable can do the trick.

using @Value and ToShortDateString() you can display only date.

@Html.TextBoxFor(model => model.StartDate, "", new { id = "date", @class = "datepicker", @style = "width:70%; height:30px;", @placeholder = "Enter Date", @Value = @Model.StartDate.ToShortDateString()})

If you are using MVC, perhaps you can try this on your client side script:

@{
      string birthDateOnly = Model.DateOfBirth.Date.ToShortDateString();
 }
@Html.DisplayTextFor(m => birthDateOnly)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!