加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Datetime减法问题

发布时间:2020-12-16 06:25:06 所属栏目:大数据 来源:网络整理
导读:通过从彼此中减去两个日期时间对象,我遇到了一些问题.我使用以下代码: $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' );
通过从彼此中减去两个日期时间对象,我遇到了一些问题.我使用以下代码:

$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 : $dt1n";
    print "today: $todayn";

    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天,预计8天.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读