我需要计算任何一年中任何一个月的分钟数。例如,我想展示2013年,2014年和2015年(以及任何其他年份)1月份有4460分钟,9月份有43200分钟等等。我可能会对此进行硬编码,但问题显然是二月份。如果是闰年,它有41760分钟,如果它没有40320分钟。我想我甚至不确定解决这个问题的最佳方法是什么。也许有日期(" t")和mktime?写一些只会改变2月的东西,如果它是闰年的话?任何指导都表示赞赏。
编辑:根据要求,我尝试过(并失败了)......
$totaldays = date("t", mktime($month));
if $totaldays=31
$totmin=44640
elseif $totaldays=30
$totmin=43200
elseif $totaldays=29
$totmin=41760
else $totaldays=28
$totmin=40320
答案 0 :(得分:2)
http://php.net/cal-days-in-month
int cal_days_in_month ( int $calendar , int $month , int $year )
填写参数,并将整数乘以(24 * 60)
示例:
$minutes = (24 * 60) * cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y'));
答案 1 :(得分:1)
撇开秒,我认为这应该有效:
$datetime = new DateTime('2014-02-01');
$interval = new DateInterval('P1Y');
$period = new DatePeriod($datetime, $interval, 5);
foreach($period as $month) {
echo $month->format('Y-m-d') . ': ' . $month->format('t') * 1440 . "<br>\n";
}
答案 2 :(得分:0)
我不确定你是如何做你的逻辑的 - 用硬编码的值或其他东西,但要检查它是否是闰年,做;
if( date("L", time() ) { //It's a leap year!
$intTotalMinute += 41760;
} else {
$intTotalMinute += 40320;
}
答案 3 :(得分:0)
获取所选年份的分钟数:
function getYearMinutes($year) {
$days = 365 + date('L', strtotime("first day of January $year"));
return $days * 24 * 60;
}