One Hat Cyber Team
Your IP :
172.16.0.254
Server IP :
58.26.163.33
Server :
Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Server Software :
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
PHP Version :
7.3.25
Buat File
|
Buat Folder
Eksekusi
Dir :
C:
/
xampp7
/
perl
/
vendor
/
lib
/
Data
/
Printer
/
Filter
/
View File Name :
DateTime.pm
package Data::Printer::Filter::DateTime; use strict; use warnings; use Data::Printer::Filter; use Term::ANSIColor; filter 'Time::Piece', sub { return _format($_[0]->cdate, @_ ); }; filter 'DateTime', sub { my ($obj, $p) = @_; my $string = "$obj"; if ( not exists $p->{datetime}{show_timezone} or $p->{datetime}{show_timezone} ) { $string .= ' [' . $obj->time_zone->name . ']'; } return _format( $string, @_ ); }; # DateTime::TimeZone filters filter '-class' => sub { my ($obj, $properties) = @_; if ( $obj->isa('DateTime::TimeZone' ) ) { return $obj->name; } else { return; } }; filter 'DateTime::Incomplete', sub { return _format( $_[0]->iso8601, @_ ); }; filter 'DateTime::Duration', sub { my ($object, $p) = @_; my @dur = $object->in_units( qw(years months days hours minutes seconds) ); my $string = "$dur[0]y $dur[1]m $dur[2]d $dur[3]h $dur[4]m $dur[5]s"; return _format( $string, @_ ); }; filter 'DateTime::Tiny', sub { return _format( $_[0]->as_string, @_ ); }; filter 'Class::Date', sub { my ($object, $p) = @_; my $string = $object->strftime("%Y-%m-%d %H:%M:%S") . " [" . $object->tzdst . "]"; return _format( $string, @_ ); }; filter 'Date::Calc::Object', sub { return _format( $_[0]->string(2), @_ ); }; filter 'Date::Pcalc::Object', sub { return _format( $_[0]->string(2), @_ ); }; filter 'Date::Handler', sub { return _format( "$_[0]", @_ ); }; filter 'Date::Handler::Delta', sub { return _format( $_[0]->AsScalar, @_ ); }; sub _format { my ($str, $obj, $p) = @_; if ( $p->{datetime}{show_class_name} ) { $str .= ' (' . ref($obj) . ')'; } my $color = $p->{color}{datetime}; $color = 'bright_green' unless defined $color; return colored( $str, $color ); } 1; __END__ =head1 NAME Data::Printer::Filter::DateTime - pretty-printing date and time objects (not just DateTime!) =head1 SYNOPSIS In your program: use Data::Printer filters => { -external => [ 'DateTime' ], }; or, in your C<.dataprinter> file: { filters => { -external => [ 'DateTime' ], }, }; You can also setup color and display details: use Data::Printer filters => { -external => [ 'DateTime' ], }, color => { datetime => 'bright_green', } datetime => { show_class_name => 1, # default is 0 show_timezone => 0, # default is 1 (only works for DateTime objects) }, }; =head1 DESCRIPTION This is a filter plugin for L<Data::Printer>. It filters through several date and time manipulation classes and displays the time (or time duration) as a string. =head2 Parsed Modules =over 4 =item * L<DateTime> =item * L<DateTime::Duration> =item * L<DateTime::Incomplete> =item * L<Class::Date> =item * L<Time::Piece> =item * L<Date::Handler> =item * L<Date::Handler::Delta> =item * L<Date::Calc::Object> =item * L<Date::Pcalc::Object> =back If you have any suggestions for more modules or better output, please let us know. =head1 SEE ALSO L<Data::Printer>