#!/usr/bin/perl use strict; use warnings; use Date::Manip; use feature 'say'; use Data::Dumper; my $dateLocal = ParseDate('now'); # say $dateLocal; my $end = "2017123123:59:59"; my $dateStartLocal = ParseDate($dateLocal); my $dateEnd = ParseDate($end); my $deltaLocal = DateCalc( $dateStartLocal, $dateEnd, 1 ); say $deltaLocal; my @dataLocal = split(/:/, $deltaLocal); my @values = qw(year(s) month(s) week(s) day(s) hour(s) minute(s)); my %hashLocal; @hashLocal{@values} = @dataLocal; print Dumper \%hashLocal; ###### Different Timezone(s) ###### # From timeZone To timeZone my $dateTimeZone = Date_ConvTZ($dateLocal,"GMT","CST"); my $dateStartTimezone = ParseDate($dateLocal); my $deltaTimezone = DateCalc( $dateStartTimezone, $dateEnd, 1 ); say $deltaTimezone; my @dataTimezone = split(/:/, $deltaTimezone); my %hashTinezone; @hashTinezone{@values} = @dataTimezone; print Dumper \%hashTinezone; __END__ $ perl test.pl 0:2:3:1:9:13:31 $VAR1 = { 'week(s)' => '3', 'month(s)' => '2', 'minute(s)' => '13', 'hour(s)' => '9', 'day(s)' => '1', 'year(s)' => '0' }; 0:2:3:1:9:13:31 $VAR1 = { 'year(s)' => '0', 'day(s)' => '1', 'minute(s)' => '13', 'hour(s)' => '9', 'week(s)' => '3', 'month(s)' => '2' };