7
votes

Comment créer des dates relatives / approximatives à Perl?

J'aimerais savoir s'il y a des bibliothèques (de préférence DateTime -esque) qui peut prendre une date normale de la date et créer une date lisible liée à l'homme appropriée. Essentiellement le contraire exact de la question la plus courante: Comment puis-je analyser les dates relatives Avec Perl? .

Évidemment, le libellé / interprétation exact est à la mise en œuvre réelle, mais je cherche à fournir un moyen cohérent de spécifier les dates à l'avenir. Connaître une apporximation comme " en raison de 2 semaines code>" est (pour moi) plus utile pour obtenir une compréhension de combien de temps j'ai restant que quelque chose " dû à 2009-07-30 code> ". p>

Exemples: P>

2009-07-06        => "in 1 year"
2009-07-30        => "in 2 weeks"
2009-07-09        => "tomorrow"
2009-07-09 12:32  => "tomorrow at 12:32"
2009-07-12 05:43  => "monday morning"
2009-07-03 05:74  => "6 days ago"


0 commentaires

3 Réponses :


8
votes

Mise à jour: On dirait que cette fonctionnalité est implémentée dans un Plugin Toolkit de modèle . Je laisse le reste de ma réponse ici pour référence, mais Modèle :: Plugin :: DTFormatter pourrait être le meilleur endroit pour regarder.

Regardant le code source de ce module, j'ai été amené à DateTime :: Format :: Natural qui semble lié à ce que vous voulez.

réponse précédente: < p> Regardez dans Date :: Calc pour vous donner Deltas à l'aide de delta_dhms < / code>. Vous devriez pouvoir utiliser ces Deltas pour choisir comment vous allez faire une phrase la date.

Voici un point de départ très rudimentaire. C'est buggy mais illustre l'idée de base. Ajoutez la logique au goût. xxx

sortie: xxx


1 commentaires

N'est-ce pas? Les gens vont descendre n'importe quoi sur ce site. Pas besoin d'être méchant!



4
votes

Regardez le Scripts d'heure relative sur le ventilateur Twitter Wiki.


0 commentaires

3
votes

date :: manip est très puissant pour des choses comme celle-ci, mais plus lente que Date :: Calc .


0 commentaires