gpt4 book ai didi

Perl 日期时间减法问题

转载 作者:行者123 更新时间:2023-12-04 19:17:53 25 4
gpt4 key购买 nike

通过将两个日期时间对象相减,我遇到了一个小问题。我使用以下代码:


$today = DateTime->now( time_zone => 'Europe/Berlin' );

my $dt1 = DateTime-> new (
year => 2011,
month => 08,
day => 08,
hour => 1,
minute => 0,
second => 4,
time_zone =>'Europe/Berlin'
);

print "DT1 : $dt1\n";
print "today: $today\n";

my $sub = $today->subtract_datetime($dt1);

print "sub days: ".$sub->days."\n";

DT1 和今天的打印语句打印:
DT1 : 2011-08-08T01:00:04
today: 2011-08-16T08:34:10

但是如果我在减法之后打印 $sub->days它显示的值 1 而不是 8 天。

我的减法有错误吗?

非常感谢您的帮助。

最佳答案

DateTime::Duration不像你(和我)预期的那样工作。检查$sub的所有字段:

DT1 : 2011-08-08T01:00:04
today: 2011-08-16T09:02:11
$sub->years: 0
$sub->months: 0
$sub->weeks: 1
$sub->days: 1
$sub->hours: 8
$sub->minutes: 2
$sub->seconds: 7

两个日期的差是 1 周 + 1 天 ,预计八天。

如果您想要天数差异,请尝试 $today->delta_days( $dt1 ) . delta_days() 方法返回一个持续时间,其中只包含天(编辑)和周,但不包含月。

关于Perl 日期时间减法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7074499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com