I could swear you were about to Rick-roll me with that URL to: http://www.badgerbadgerbadger.com/
You know what would make the world a far better place than it is already? To have Badger::Timestamp as a plugin part of the 2.21 install... Yes, that and one million dollars! I'll take the Badger::Timestamp. Thanks for the example Andy, but it's hard to overcome my natural complacency once I've found a working solution, but I promise to do so if you get that plugin in there, swear on Stanstead badger badger badger: http://video.google.com/videoplay?docid=7081271953584766550 Tosh Andy Wardley wrote: > Tosh Cooey wrote: >> Maybe somebody found something less fugly? > > Hi Tosh, > > You might like to have a look at Badger::Timestamp. It is (or eventually > will > be) the successor to the Date plugin. The main difference is that it's > written as a stand-alone Perl module rather than as a TT-specific plugin. > The TT plugin will be a very thin wrapper around it. > > http://badgerpower.com/docs/Badger/Timestamp.html > > There isn't a TT plugin interface to it yet, but it would be trivially easy > to write one. Or you can define a constructor subroutine and pass it into > your templates as a variable, as shown in the example attached below. > > It's intentionally simple in that it only recognises IS0-8601 timestamps > (or something suitably similar, like MySQL timestamps) or a time in epoch > seconds. But that covers 99% of the *simple* things that I've ever > wanted to > do in a template: mainly pretty-printing database timestamps and file > creation / modified dates. > > However, it's also got adjust() and before()/after() methods that are > sufficient to work out when 5 minutes ago was and see if another timestamp > is before or after that point. Or you can just have it convert the db > timestamp and current time to epoch seconds (epoch_time()) and > 600 it > yourself. > > For anything more substantial, DateTime is probably your best bet. > > Cheers > A > > > > #!/usr/bin/perl > # > # Perl script to demonstrate Badger::Timestamp > # > # Written by Andy Wardley http://wardley.org/ > # > # 10 June 2009 > # > > use Template; > use Badger::Timestamp; > > my $tt = Template->new; > my $vars = { > stamp => sub { Badger::Timestamp->new(@_) } > }; > > $tt->process(\*DATA, $vars) > || die $tt->error; > > > __END__ > [% # you can pass a timestamp argument > t = stamp('2009-06-10 16:29:04') > %] > timestamp: [% t %] > date: [% t.date %] > time: [% t.time %] > hour: [% t.hour %] > epoch time: [% t.epoch_time %] > > [% # or you get the current time %] > The current time is [% stamp %] > > [% # you can adjust a timestamp to change the time/date %] > [% ago4 = stamp.adjust( minutes = -4 ) -%] > 4 minutes ago the time was [% ago4.time %] > [% ago5 = stamp.adjust( minutes = -5 ) -%] > 5 minutes ago the time was [% ago5.time %] > [% ago6 = stamp.adjust( minutes = -6 ) -%] > 6 minutes ago the time was [% ago6.time %] > > [% # before() and after() allow you to compare timestamps %] > Is [% ago4 %] before 5 minutes ago? [% ago4.before(ago5) ? 'YES' : 'NO' %] > Is [% ago6 %] before 5 minutes ago? [% ago6.before(ago5) ? 'YES' : 'NO' %] > > -- McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/ _______________________________________________ templates mailing list [email protected] http://mail.template-toolkit.org/mailman/listinfo/templates
