¿Qué hay de malo en lo siguiente?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date se muestra el 20/11/2005 a las 12:00 a. m. y quiero mostrar el 20 de noviembre de 2011
fuente
¿Qué hay de malo en lo siguiente?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date se muestra el 20/11/2005 a las 12:00 a. m. y quiero mostrar el 20 de noviembre de 2011
Tratar:
@item.Date.ToString("dd MMM yyyy")
o puede usar el [DisplayFormat]
atributo en su modelo de vista:
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime Date { get; set }
y en su opinión simplemente:
@Html.DisplayFor(x => x.Date)
Esta es la solución:
@item.Published.Value.ToString("dd. MM. yyyy")
Antes de ToString () use Value .
@(item.DOB?.ToString("dd-MMM-yyyy"))
. O usando la propiedad HasValue - @(item.DataDate.HasValue ? item.DataDate.Value.Date.ToString("dd MMM yyyy") : null)
. En ambos casos, la propiedad debe ser datetime que admita valores NULL.
Prueba esto en MVC 4.0
@Html.TextBoxFor(m => m.YourDate, "{0:dd/MM/yyyy}", new { @class = "datefield form-control", @placeholder = "Enter start date..." })
El atributo [DisplayFormat] solo se usa en EditorFor / DisplayFor, y no en las API de HTML sin procesar como TextBoxFor. Lo hice funcionar haciendo lo siguiente,
Modelo:
[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }
Ver:
<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>
Salida: 30/12/2011
Enlace relacionado:
El siguiente código te ayudará
@Html.Label(@item.Date.Value.ToString("dd - M - yy"))
Para Razor, coloque el archivo DateTime.cshtml en la carpeta Views / Shared / EditorTemplates. DateTime.cshtml contiene dos líneas y produce un TextBox con una fecha formateada el 11/9/2001.
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
En general, el mes escrito se escapa como MMM, el año de 4 dígitos como yyyy, por lo que su cadena de formato debe verse como "dd MMM yyyy".
DateTime.ToString("dd MMM yyyy")
No pude hacer que esto funcionara completamente según las sugerencias anteriores. La inclusión de DataTypeAttribute [DataType(DataType.Date)]
pareció resolver mi problema, consulte:
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime RptDate { get; set; }
@Html.EditorFor(m => m.CLPosts.RptDate)
HTH
Para toda la solución dada, cuando pruebe esto en un navegador moderno (como FF), y haya configurado el modelo correcto
// 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) se renderizará (el tipo de entrada se establece hasta la fecha según la configuración de fecha en su modelo)
<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>
Y el navegador mostrará
Para solucionar esto, debe cambiar el tipo a texto en lugar de fecha (también si desea usar su calendario personalizado)
@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control", @type = "text" } })