我试图在当前时间上增加一个小时,但遇到了一个错误。
我的代码片段是
use DateTime;
my $now=DateTime->now(
time_zone=> 'America/Los_Angeles');
$now->add( hour=>1 );
我得到的错误是:
The following parameter was passed in the call to DateTime::Duration::new but was not listed in the validation options: day at c:strawberry....
DateTime::Duration::new(undef, 'day', 1) called at c:strawberry....
DateTime::add('DateTime=HASH(0x2e49ae0)', 'day', 1) called at tester.pl line 6
我该如何让它发挥作用?
查看DateTime
add
方法文档:
$dt->添加(日期时间::持续时间->新参数)
这个方法是围绕add_duration()方法的语法糖。它只需使用给定的参数创建一个新的DateTime::Duration对象,然后调用add_Duration()方法。
哦,这就像调用add_duration。DateTime->add_duration
方法说明了什么?
$dt->add_duration($duration_object)
此方法将DateTime::Duration添加到当前日期时间。有关更多详细信息,请参阅DateTime::Duration文档。
啊,我们需要DateTime::Duration的参数。那些是什么?
http://metacpan.org/pod/DateTime::Duration
use DateTime::Duration;
$dur = DateTime::Duration->new(
years => 3,
months => 5,
weeks => 1,
days => 1,
hours => 6,
minutes => 15,
seconds => 45,
nanoseconds => 12000
);
哦,hour
和hours
。使用
$now->add( hours => 1 );
相反!
通过将呼叫更改为
$now->add( hours => 1 );