我使用Perl进行时间比较。
#!/usr/bin/perl
print $fh "End Time : $endTime ";
print $fh "Before if loop : ", time();
# time() gives current time timestamp
if ( time() < $endTime ) {
print $fh "Inside if loop : ", time();
$exitValue = 11;
}
目前,我正在使用if ( time() < $endTime )
。在这里,time()
以毫秒为单位给出时间戳,但我得到$endTime
作为时间戳,以分钟为单位。
我想比较一下munutes的时间戳。
如何在几分钟内获得时间戳?
答案 0 :(得分:3)
time()
为您提供自纪元in seconds以来的时间。
如果您想要分钟,可以使用:
my $time_min = int(time() / 60);
David Cross只是强调使用int()
总是向下舍入。替代方案包括:
my $time_sec = sprintf '%.0f', time() / 60;
(注意:使用"half-to-even"四舍五入)Math::Round
POSIX
' floor()
或ceil()
答案 1 :(得分:0)
我看到两种可能的解决方案:
您可以在一分钟内将$endTime
乘以毫秒(即$endTime = $endTime * 60000
),然后在执行时将其与time()
进行比较
您可以在一分钟内将time()
的整数除以毫秒(即if (floor(time() / 60000) < $endTime) ...
)。只要我知道,您需要use POSIX
才能使用floor
第一个是我最喜欢的选择。