2012-02-28 5 views
0

Je cherche à afficher un horodatage du moment où le contenu a été publié dans Umbraco, dans le format correct requis par l'élément HTML5 <time>.Sortie correcte "datetime" <time> attribut (Umbraco/Razor)

Par exemple:

<time datetime="2012-02-28T20:00+00:00" pubdate>February 28, 2012</time> 

Yat-il un moyen d'y parvenir au sein Umbraco ou rasoir? Je sais avec PHP qu'il existe une façon particulière de produire des timestamps "W3C": http://goo.gl/sEFsh.

Plus d'informations sur la mise en forme correcte de cet élément se trouve ici: http://html5doctor.com/the-time-element/

Répondre

1

Il semble que la meilleure option pour cela pourrait être d'utiliser le global « UpdateDate » comme ceci:

<time datetime="@Model.UpdateDate.ToString("yyyy-MM-ddTH:mmzzz")" pubdate> 
    @Model.UpdateDate.ToLongDateString() 
</time> 

Semble sortie le format souhaité et la date de publication au lieu de la date actuelle. Quelqu'un peut-il voir des problèmes avec cette solution?

1

Je pense que la chaîne de format que vous cherchez peut-être est « o », comme celui-ci (en rasoir):

@{ 
var now = DateTime.Now; 
} 
<time datetime="@now.ToString("o")" pubdate>@now.ToLongDateString()</time> 

Produit pour moi:

<time datetime="2012-02-28T11:41:50.3697628-05:00" pubdate>Tuesday, February 28, 2012</time> 
+0

C'est génial - J'ai la même sortie! Je cherche maintenant à enlever les chiffres inutiles de la fin du temps fort et à faire sortir la date publiée plutôt que la date actuelle. – AlecRust

+0

En outre, ce code semble fonctionner dans un fichier de script .cshtml, mais pas dans un modèle de page. A-t-il besoin d'être formaté différemment pour cela? – AlecRust

+0

Vous pouvez ajouter le pubdate au modèle ou au ViewBag, ou vous voulez l'ajouter au code de votre vue. Vous pouvez également utiliser une mise en forme plus précise comme ceci: @ Model.PubDate.ToString ("aaaa-MM-ddTHH: mmzzz") - voir http://msdn.microsoft.com/fr-fr/library/8kb3ddd4.aspx pour tous les possibilités de formatage. En ce qui concerne le modèle de page, je ne suis pas sûr. –

-1

Je habituellement juste utiliser ce code dans cshtml

@yourDate.Date.ToString("yyyy-MM-dd")T00:00+00:00 
+0

Dans votre exemple, 'yourDate' se référerait-il?Je cherche à sortir la date publiée. – AlecRust

+0

est une variable contenant une référence à la date que vous souhaitez imprimer. Vous mentionnez quelque chose à propos de «la date de publication», mais c'est un détail de mise en œuvre qui n'est pas pertinent pour votre question. –

2

Que diriez-vous cela dans le rasoir:

@DateTime.Now.ToString("yyyy-MM-ddTHH:mmzzz") 

Cela ne génère pas de sortie pour les secondes et millisecondes comme dans votre exemple.

+0

Merci! Cela produit la sortie de date exacte que je suis après '2012-02-29T15: 55 + 00: 00'. La dernière partie est de faire sortir la date publiée plutôt que la date actuelle? – AlecRust

+0

Quelle version d'Umbraco utilisez-vous? – marapet

+0

J'utilise v4.7.1 – AlecRust

Questions connexes