Spip : Afficher la date de demain

vendredi 18 mai 2007

SPIP / balise / dates

Suite à une question sur le forum de spip.net, voici comment afficher la date du lendemain.

Ma première réponse proposait d’utiliser le code suivant :

#EVAL{(#DATE|jour)+1}[ (#DATE|nom_mois)] [(#DATE|annee)]

Comme il est indiqué sur la doc de spip à propos de la balise #DATE :

Si on se trouve au premier niveau du squelette (c’est-à-dire en-dehors de toute boucle), la date considérée est la date du jour - à moins qu’on ait passé une date dans l’URL de la page.

Le problème est que ce code ne fonctionne pas car il ne fait qu’ajouter 1 au jour en cours. Du coup, cela va générer des dates comme le 32 janvier 2007, peut mieux faire...

Créer une balise #DEMAIN

La solution est donc de créer une balise #DEMAIN en s’inspirant de la contrib "Nouvelle balise : exemple avec #MAINTENANT".

Pour ce faire, il faut ajouter ceci dans le fichier squelettes/mes_fonctions.php :

function balise_DEMAIN($params) {
$params->code = "date('d-m-Y', time()+24*3600)";
$params->type = 'php';  
return $params;
}

Ensuite, on peut se servir de la balise #DEMAIN dans ses squelettes pour afficher la date du lendemain.

Vos commentaires

  • ?

    les balises du type #MAINTENANT, ont un intérêt pédagogique indéniable, mais dans les faits ne sont pas très utiles.

    En plus, elles ont la facheuse tendance à faire reclamer des balises du type #SURLENDEMAIN, #AVANTVEILLE ... ;)

    Bref, en critère :
    hier :
    {date_heure==^((#EVAL{date("Y-m-d", strtotime("-1day"))}))}
    demain :
    {date_heure==^((#EVAL{date("Y-m-d", strtotime("+1day"))}))}

    date_heure, c’est pour les brèves, pour les articles, on aura {date==^...}

    en balise :

    Demain :
    [(#EVAL{date("Y-m-d", strtotime("+1day"))})]

    #DEMAIN, ça fait joli dans un squelette, mais ça oblige aussi à déposer une fonction dans un fichier pas évident à placer, alors que là, nativement, rien qu’en squelette, on a un résultat maléable à souhait.

    c’est pour la frime, hein, elle est très bien la balise #DEMAIN :)

    5 juin 2007, 10:28

  • bb

    Merci pour ce commentaire qui complète à merveille l’article. Pour ceux et celles qui ne connaissent pas la balise #EVAL :

    La balise #EVAL{argument} (depuis SPIP 1.9) évalue l’expression PHP mise en accolade.

    A lire sur spip.net

    5 juin 2007, 22:06

  • ravi

    longtemps j’ai cherché .. et je enfin je suis tombé sur ce blog
    MERCI ET BONNE ANNEE

    3 janvier 2015, 19:26

  • b_b

    Content que l’astuce soit encore utile 7 ans après sa publication :)

    28 février 2015, 14:50

Répondre à cet article

Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.