perl - 如何在perl中计算2个unix时间戳之间的天数?

标签 perl unix-timestamp

有一些简单的方法可以计算 perl 中两个 unix 时间戳之间的天数, 例如,$time1= 1366601846 和 $time2 = 1366431011,因此输出为 2 天。

即使两个unix时间戳之间的差异只有两秒,也应该被视为1天的差异。

先谢谢了..

最佳答案

在欧洲/巴黎,这两个时间戳是

2013/04/20 06:10:11
2013/04/22 05:37:26

不清楚你想要什么。

在欧洲/巴黎,时间相差 1 天 23 小时 15 分钟。四舍五入就是2天。如果这是您想要的,您可以使用

use DateTime qw( );

my $dt1 = DateTime->from_epoch( epoch => 1366601846, time_zone => 'local' );
my $dt2 = DateTime->from_epoch( epoch => 1366431011, time_zone => 'local' );

my ($days, $minutes, $ns) = ($dt1 - $dt2)->in_units(qw( days minutes nanoseconds ));
++$days if $minutes || $ns;

print("$days\n");

在欧洲/巴黎,日历日期相差 2 天。如果这是您想要的,您可以使用

use DateTime qw( );

my $dt1 = DateTime->from_epoch( epoch => 1366601846, time_zone => 'local' );
my $dt2 = DateTime->from_epoch( epoch => 1366431011, time_zone => 'local' );

my $days = $dt1->delta_days($dt2)->in_units('days');

print("$days\n");

除以 24*60*60 并不总是有效,无论您的意思是什么。在这两种情况下,答案都取决于您指定的时区。

关于perl - 如何在perl中计算2个unix时间戳之间的天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16139193/

相关文章:

python - 将 Facebook 事件开始/结束时间转换为 UTC

perl - 如何在 perl 中使用数据输入创建测试

algorithm - 有没有办法在 Perl 中检查 CUSIP 的数字

bash - 按长度替换模式(Bash 的可移植解决方案)

javascript - new Date() 返回无效日期,除非 * 为 1?

php - 获取当月和上个月的所有unix时间戳

perl - 如何使用 LWP 发出 HTTP PUT 请求?

perl - 配置 OpenDDS

c++ - 将 RFC 822 时间戳转换为 unixtime,时区值不起作用,C/C++

android - 如何从给定的 unix 时间戳获取到现在为止耗时