我正在使用php代码,我开始使用for statment。
for($i=0; $i<4; $i++)
现在我明白$ i = 0从0开始计数,$ i&lt; $ 4表示从0到4以下计数。
我想要实现的是为语句添加多个而不是使用多个php代码。
for($i=0; $i<4; $i++)
for($i=4; $i<8; $i++)
for($i=8; $i<12; $i++)
for($i=12; $i<16; $i++)
.......等以便列出所有结果。
<?php
$day = "";
for($i=0; $i<4; $i++)
{
$day = date("d", mktime(0, 0, 0, 2, 29, date("Y")+$i));
if($day == 29)
{
$year = date("Y")+$i;
break;
}
}
echo "<p>The next leap year is 29th February $year</p>";
?>
回显的结果将是:
下一个闰年是2016年2月29日
下一个闰年是2020年2月29日
答案 0 :(得分:9)
您可以使用date("L")
$yearsToCheck = range(2013, 2020);
foreach ($yearsToCheck as $year) {
$isLeapYear = (bool) date('L', strtotime("$year-01-01"));
printf(
'%d %s a leap year%s',
$year,
$isLeapYear ? 'is' : 'is not',
PHP_EOL
);
}
<强>输出强>
2013 is not a leap year
2014 is not a leap year
2015 is not a leap year
2016 is a leap year
2017 is not a leap year
2018 is not a leap year
2019 is not a leap year
2020 is a leap year
答案 1 :(得分:7)
使用conditions for a leap year并查看年份。为此使用一个语句!
function is_leap_year($year)
{
return ((($year % 4) == 0) && ((($year % 100) != 0) || (($year % 400) == 0)));
}
答案 2 :(得分:3)
为什么不喜欢这个?
<?php
for($i=0; $i<16; $i++)
{
$day = date("d", mktime(0, 0, 0, 2, 29, date("Y")+$i));
if($day == 29)
{
$year = date("Y")+$i;
echo "<p>The next leap year is 29th February $year</p><br>";
}
}
?>
答案 3 :(得分:2)
使用DateTime类使这类事情变得简单快捷: -
$datetime = new \DateTime("2013/01/01");
$interval = new \DateInterval('P1Y');
$period = new \DatePeriod($datetime, $interval, 20);
foreach($period as $date){
if((bool)$date->format('L')){
echo $date->format('Y') . " is a Leap Year</br>\n";
}
}
输出: -
2016 is a Leap Year
2020 is a Leap Year
2024 is a Leap Year
2028 is a Leap Year
2032 is a Leap Year
你可以使用它来促进重复使用: -
/**
* @param int $numberOfYears
* @return array
*/
function getLeapYears($numberOfYears = 10){
$result = array();
$datetime = new \DateTime();
$interval = new \DateInterval("P1Y");
$period = new \DatePeriod($datetime, $interval, $numberOfYears);
foreach($period as $date){
if((bool)$date->format('L')){
$result[] = $date->format('Y');
}
}
return $result;
}
或测试某一年是否为闰年: -
function isLeapYear($year)
{
return (bool)\DateTime::createFromFormat('Y', $year)->format('L');
}