Как я могу получить разницу двух временных меток, используя Perl? - PullRequest
0 голосов
/ 16 декабря 2010

Здесь я основал одну проблему ... У меня есть две метки времени с одинаковым форматом, как (вт дек 14 18:23:19 2010 и вт 14 17:23:19 2010).как я могу получить разницу в две отметки времени в часах.пожалуйста, помогите мне

Ответы [ 3 ]

9 голосов
/ 16 декабря 2010
use Date::Parse;


my $t1 = 'Tue Dec 14 17:23:19 2010';
my $t2 = 'Tue Dec 14 18:23:19 2010';

my $s1 = str2time( $t1 );
my $s2 = str2time( $t2 );

print $s2 - $s1, " seconds\n";
5 голосов
/ 16 декабря 2010

Я использую семейство классов DateTime для почти всей моей обработки даты / времени.

#!/usr/bin/perl

use strict;
use warnings;

use DateTime::Format::Strptime;

my $dp = DateTime::Format::Strptime->new(
  pattern => '%a %b %d %H:%M:%S %Y'
);

# Create two DateTime objects
my $t1 = $dp->parse_datetime('Tue Dec 14 17:23:19 2010');
my $t2 = $dp->parse_datetime('Tue Dec 14 18:23:19 2010');

# The difference is a DateTime::Duration object
my $diff = $t2 - $t1;

print $diff->hours;
1 голос
/ 09 февраля 2015

Вы можете воспользоваться DateTime и его subtract_datetime () , который возвращает объект DateTime :: Duration .

use Date::Parse;
use DateTime;

my $t1 = 'Tue Dec 14 17:23:19 2010';
my $t2 = 'Tue Dec 14 18:23:19 2010';

my $t1DateTime = DateTime->from_epoch( epoch => str2time( $t1 ) );
my $t2DateTime = DateTime->from_epoch( epoch => str2time( $t2 ) );

my $diff = $t2DateTime->subtract_datetime( $t1DateTime );

print "Diff in hours: " . $diff->in_units('hours') . "\n";
print "Diff in months: " . $diff->in_units('months') . "\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...