Quel est le problème avec ce qui suit ?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@item.Date affiche 20/11/2005 12:00 a.m et je veux afficher 20 Nov 2011
Quel est le problème avec ce qui suit ?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@item.Date affiche 20/11/2005 12:00 a.m et je veux afficher 20 Nov 2011
Essayez :
@item.Date.ToString("dd MMM yyyy")
ou vous pouvez utiliser la fonction [DisplayFormat]
sur votre modèle de vue :
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime Date { get; set }
et, à votre avis, simplement :
@Html.DisplayFor(x => x.Date)
J'ai essayé avec une zone de texte et malheureusement cela n'a pas fonctionné. Existe-t-il un moyen de faire cela pour les zones de texte ?
N'oubliez pas de définir "ApplyFormatInEditMode = true" dans votre définition de DisplayFormat si vous voulez que le formatage de la date soit appliqué aux éléments EditorFor().
Ce code est correct mais si la colonne date est nulle, il y aura une erreur, essayez donc este
Stom a raison, si vous avez des valeurs nulles, vous obtiendrez une erreur, merci pour le lien.
Je suppose que le vote négatif est dû au fait que cette solution formate la date en "jj/MM/aaaa" au lieu du format "jj MMM aaaa" demandé par l'OP.
L'attribut [DisplayFormat] n'est utilisé que dans EditorFor/DisplayFor, et non par les API HTML brutes comme TextBoxFor. J'ai réussi à le faire fonctionner en procédant comme suit,
Modèle :
[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }
Vue :
<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>
Sortie : 30/12/2011
Lien connexe :
Pour Razor, placez le fichier DateTime.cshtml dans le dossier Views/Shared/EditorTemplates. DateTime.cshtml contient deux lignes et produit une TextBox avec une date formatée 9/11/2001.
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
Merci... je n'ai réussi à faire fonctionner aucun des autres. Est-ce que C#/Razor a tellement changé qu'un simple format de date doit passer par tant de choses pour fonctionner ? La réponse la plus suggérée sur Internet : ....ToString("dd MMM yyyy") n'a jamais fonctionné pour moi et j'ai toujours fini par le mettre dans une variable en le convertissant en une date et en sortant ensuite la date. Je savais qu'il devait y avoir une solution qui fonctionnait quelque part.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Les combinaisons des différents formats de date existants peuvent être trouvées ici : msdn.microsoft.com/en-us/library/8kb3ddd4.aspx