我的任务是计算当月的最后一天。
DateTime中有一种方法last_day_of_month
。你可以这样称呼它:
$av_tmp_TODAY = DateTime->last_day_of_month({year=>2016,month=>05});
但是我不想设定固定的年份和月份,我只想采取今天的日期并获得该月的最后一天。
此外,我希望我的输出格式为%Y-%m-%d
。
答案 0 :(得分:8)
使用构造函数now()
,然后使用输出方法ymd('-')
和所需的分隔符。如果未指定,则默认为-
。
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw{say};
use DateTime;
my $dt = DateTime->now();
say DateTime->last_day_of_month( year => $dt->year, month => $dt->month )->ymd('-');
答案 1 :(得分:2)
return Json(new HttpUnauthorizedResult().StatusDescription);
输出:
StatusDescription
答案 2 :(得分:1)
了解perldoc
命令。
perldoc DateTime
应告诉您$dt = DateTime->now;
会为您提供一个包含当前日期和时间的对象,您可以通过该对象提取当前年份和月份
$year = $dt->year;
$month = $dt->month;
你也会找到那里
$ymd = $dt->ymd; # 2002-12-06
$ymd = $dt->ymd('/'); # 2002/12/06
答案 3 :(得分:0)
要获取日,月和年,您应该使用localtime
:
my($day, $month, $year)=(localtime)[3,4,5];
要获得当月的最后一天,请使用上面的代码:
$av_tmp_TODAY = DateTime->last_day_of_month({
year => $year + 1900,
month => $month +1
})->ymd('-');
注意:您必须将1添加到$month
,将1900添加到$year
才能获得正确的月份和年份。这在上面的例子中显示。
有关此主题的进一步阅读,请参阅: